System and method for semi-automatic video editing

ABSTRACT

A system and a method for semi-automatic video editing is provided herein. The method may include in one embodiment the following steps: processing a media stream comprising at least one of: a plurality of images and a video stream, to extract metadata relating to at least one characteristic of the media stream; displaying to a user the extracted metadata; receiving from the user an instruction to generate a modified media stream wherein said instruction is responsive to the at least one characteristic represented by the extracted metadata; and generating a modified media stream, in response to said instruction. The system may implement the aforementioned method using a computer processor, a display, and a user interface.

CROSS REFERENCE TO RELATED APPLICATIONS

This patent application is a continuation of U.S. patent applicationSer. No. 13/706,440, filing date Dec. 6, 2012, which is acontinuation-in-part of U.S. patent application Ser. No. 13/041,457,filing date Mar. 7, 2011, which claims priority from U.S. ProvisionalPatent Application No. 61/311,524, filing date Mar. 8, 2010, allapplications being incorporated herein by reference.

BACKGROUND OF THE INVENTION

The main problem with manual video editing today is that it requires ahuge amount of work from the user: the user must manually go over theentire input raw videos, mark starting and ending points for eachportion of the video that he would like to select. Then, in order to geta pleasing edited video the user also needs to synchronize the selectedclips with the soundtrack, and create graphical effects and transitionsthat fit the content of the video.

This process highly time consuming—it can take hours or even days. Theresulting video clip, in many cases, doesn't have a professional look:The videos are not stable, the effects are amateurish and thesynchronization with the soundtrack is not perfect.

SUMMARY OF THE INVENTION

According to various embodiments of the invention, there may be providedmethods, non-transitory computer readable media and computerizedsystems. Any reference to a non-transitory computer readable mediaherein should be also regarded as a reference to a method to be executedby a computerized system and should be regarded as a reference to thecomputerized system.

According to an embodiment of the invention, there is provided anon-transitory computer readable medium that may store instructions thatmay cause a computerized system process a media stream to extractmetadata about characteristics of the media stream; display to a userthe metadata; receive from the user an instruction to generate amodified media stream that is responsive to at least one characteristicthat is represented by the metadata; and process the media stream togenerate a modified media stream, in response to the instruction.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to generate a modified media streamthat is shorter than the media stream.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to generate the modified media streamby applying a non-parametric method.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to generate the modified media streamin response to a speech attribute that is indicative of an importancelevel of media frames that are associated with speech.

A characteristic of the media stream may be an importance of a certainperson, wherein a face of the certain person appears in the mediastream.

A characteristic of the media stream may be an importance of a certainscene, wherein the scene appears in the media stream.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to generate the modified media streamin response to a face attribute that is indicative of an importancelevel of media frames that comprise faces.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to generate the modified media streamin response to an action attribute that is indicative of an importancelevel of media frames that are associated with action.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to display to a user metadata relatingto a portion of the media stream while acquiring another portion of themedia stream.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to generate a mosaic of visualentities, wherein a first visual entity of the mosaic represents thealtered media stream; and wherein at least a second visual entity of themosaic is not representative of the altered media stream; wherein arelationship between a size of the first and second visual entities isresponsive to a relationship between importance levels associated withthe first and second visual entities. The visual entities may includestill pictures and video streams.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to trigger the generating of themodified media stream in response to a detection of camera activity.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to trigger the generating of themodified media stream when the user is located at a predeterminedlocation.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to trigger the generating of themodified media stream in response to an activity of another user that isassociated with the user.

The media stream may include audio frames that are synchronized withvideo stream; wherein the non-transitory computer readable medium storesinstructions that cause the computerized system to generate a modifiedaudio stream that comprises selected audio frames and a modified videostream; wherein the modified video stream comprises video framessynchronized with selected audio frames and additional video content;wherein the modified video stream and the modified audio stream aresynchronized.

According to an embodiment of the invention, there is provided anon-transitory computer readable medium may store instructions that maycause a computerized system to: receive a media stream that comprises aplurality of frames; generate a modified media stream that comprisesselected frames of the plurality of frames, wherein the generatingcomprises excluding rejected frames of the plurality of frames; displayto a user information about the selected frames and the rejected frames;receive from a user an instruction to alter the modified media stream;and alter, in response to the instruction, the modified media stream byperforming at least one out of (a) adding at least one rejected frame tothe modified media frame; (b) removing at least one selected frame fromthe modified media frame to provide an altered media stream.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to display to the user information ona touch screen of a mobile device; and receiving the instruction fromthe touch screen.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to generate the modified media streamin response to a type of soundtrack associated with the media stream.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to obtain media streams from multipleusers and to generate the modified media stream from frames of the mediastreams.

The non-transitory computer readable medium may store instructions thatmay cause the computerized system to receive from multiple usersinstructions to alter the modified media streams and to generate themodified media stream in response to the instructions.

According to an embodiment of the invention, there is provided anon-transitory computer readable medium may store instructions that maycause a mobile phone to acquire a media stream and to receive from theuser the metadata in response to a display of at least a portion of themedia stream.

The non-transitory computer readable medium may store instructions thatmay cause the mobile device to receive from the user the metadata inresponse to a display of an automatically extracted meta-data from amedia stream.

The non-transitory computer readable medium may store instructions thatmay cause the mobile device to receive the metadata during anacquisition of the media stream.

The non-transitory computer readable medium may store instructions thatmay cause the mobile device to process speech of the user that is sensedduring an acquisition of media stream to extract the metadata.

The speech may not include instructions aimed to the mobile device.

According to an embodiment of the invention, there is provided a methodthat may include: acquiring a media stream; processing the media streamto extract metadata about characteristics of the media stream;displaying to a user the metadata; receiving from the user aninstruction to generate a modified media stream that is responsive to atleast one characteristic that is represented by the metadata; andprocessing the media stream to generate a modified media stream, inresponse to the instruction.

According to an embodiment of the invention, there is provided a methodthat may include receiving a media stream that comprises a plurality offrames; generating a modified media stream that comprises selectedframes of the plurality of frames, wherein the generating comprisesexcluding rejected frames of the plurality of frames; displaying to auser information about the selected frames and the rejected frames;receiving from a user an instruction to alter the modified media stream;and altering, in response to the instruction, the modified media streamby performing at least one out of (a) adding at least one rejected frameto the modified media frame; (b) removing at least one selected framefrom the modified media frame to provide an altered media stream.

According to an embodiment of the invention, there is provided acomputerized system, that may include: a media stream acquisition modulearranged to receive a media stream that comprises a plurality of frames;an editing module arranged to generate a modified media stream thatcomprises selected frames of the plurality of frames, wherein thegenerating comprises excluding rejected frames of the plurality offrames; a touch screen arranged to display to a user information aboutthe selected frames and the rejected frames and to receive from a useran instruction to alter the modified media stream; and wherein theediting module is further arranged to alter, in response to theinstruction, the modified media stream by performing at least one out of(a) adding at least one rejected frame to the modified media frame; (b)removing at least one selected frame from the modified media frame toprovide an altered media stream.

BRIEF DESCRIPTION OF THE DRAWINGS

The subject matter regarded as the invention is particularly pointed outand distinctly claimed in the concluding portion of the specification.The invention, however, both as to organization and method of operation,together with objects, features, and advantages thereof, may best beunderstood by reference to the following detailed description when readwith the accompanying drawings in which:

FIG. 1 illustrates a system according to an embodiment of the invention;

FIG. 2 illustrates a system and its environment according to anembodiment of the invention;

FIG. 3 illustrates a method according to an embodiment of the invention;

FIG. 4 illustrates a pre-processing block according to an embodiment ofthe invention;

FIG. 5 illustrates a query block according to an embodiment of theinvention;

FIG. 6 illustrates a similarity block according to an embodiment of theinvention;

FIG. 7 illustrates a classification block according to an embodiment ofthe invention;

FIG. 8 illustrates a clustering block according to an embodiment of theinvention;

FIG. 9 illustrates a SalienSee block according to an embodiment of theinvention;

FIG. 10 illustrates a detection block according to an embodiment of theinvention;

FIG. 11 illustrates an editing process according to an embodiment of theinvention;

FIG. 12 illustrates a system and its environment according to anembodiment of the invention;

FIGS. 13-19, 20A-20C, 25, 28, 33 and 35 illustrate various methodsaccording to various embodiments of the invention;

FIGS. 22, 23, 24, 29, 30, 36 and 37 illustrate different screens ofvarious user interfaces according to various embodiments of theinvention;

FIG. 21 illustrates a computerized system according to an embodiment ofthe invention;

FIGS. 26 and 27 illustrate event detections according to variousembodiments of the invention;

FIG. 31 illustrates an album according to an embodiment of theinvention;

FIG. 32 illustrates face based sharing according to an embodiment of theinvention;

FIG. 34 illustrates an editing of video and audio according to anembodiment of the invention; and

FIG. 38 illustrates various building blocks of a computerized systemaccording to an embodiment of the invention.

It will be appreciated that for simplicity and clarity of illustration,elements shown in the figures have not necessarily been drawn to scale.For example, the dimensions of some of the elements may be exaggeratedrelative to other elements for clarity. Further, where consideredappropriate, reference numerals may be repeated among the figures toindicate corresponding or analogous elements.

DETAILED DESCRIPTION OF THE INVENTION

Various references are made herein to a system, a device and a mobiledevice. These terms can be used in an interchangeable manner.

There is provided a semi-automatic video editing application for amobile phone.

There is provided a semi-automatic video editing process. Unlike manualvideo editing, the user is the “Director” and not the “Editor”. He givesguides and directions to the system and selects his preferred scenes,but most of the labor and the technical work is done by the system: Thesystem automatically selects a pool of good scenes from the video, fromwhich the user can choose his preferred ones, it automatically finds theoptimal cuts for these scenes, synchronizes the selected scenes with thesoundtrack, and finally selects the graphical assets that best fit thevideo's content. The system also stabilizes the videos, and improves itsquality by color correction and noise reduction.

In each step of the editing process, the user can direct the system bygiving his preferences, general guides and by making subjectivedecisions. The system produces a set of editing suggestions that theuser can accept, modify or reject. This process can be cyclic: In eachstep, the system can produce new suggestions based on the user input.

This semi-automatic process can produce a professional looking editedvideo while requiring minimal effort from the user.

The problem of video editing becomes even more critical today, when mostof the cameras are actually mounted on mobile phones. In this case, thescreen is small compared to a personal computer. As a result, it isimpractical to insert all the functionality required from fully manualediting software into a single small screen. On the other hand, sincethe camera is available at all times, the amount of casual videos,documenting daily events, is rapidly increasing. Most of the videos areno longer videos of important events but of daily activities. Therefore,it is no longer practical for the user to spend a lot of time on eachvideo—he would agree to spend only a few seconds on the editing andwould prefer to leave the dirty work to the automatic system.

Due to the small screen of mobile devices, the common user interactionis via a touch screen, requiring minimal interface. This environmentfits well to the proposed semi-automatic video editing framework: Theuser only gives his preferences and makes a few selections, while mostof the work is done automatically by the system.

In addition, in mobile phones the camera and the screen reside on thesame device. Therefore, the entire creation process, from the videocapture to the video editing and even the viewing of the resulting videocan all be done on the same device.

There are provided a system and application that implements thissemi-automatic video editing. Various example included in the followingtext illustrate various ways in which the user can express his taste viathe mobile phone.

It should be noted that this system can be a mobile device such as amobile phone or be any other type of device, in particular a device thathas both a camera and a display screen such as tablets, or computerswith a very small screen.

FIG. 18 illustrates method 1800 according to an embodiment of theinvention.

Method 1800 may include:

-   -   a. Acquiring a media stream 1810.    -   b. Processing the media stream to extract metadata about        characteristics of the media stream 1820.    -   c. Displaying to a user the metadata 1830.    -   d. Receiving from the user an instruction to generate a modified        media stream that is responsive to at least one characteristic        that is represented by the metadata 1840.    -   e. Processing the media stream to generate a modified media        stream, in response to the instruction 1850.

Stage 1850 may include generating a modified media stream that isshorter than the media stream.

Stage 1850 may include generating the modified media stream by applyinga non-parametric method (as illustrated below).

Stage 1850 may include generating the modified media stream in responseto a speech attribute that is indicative of an importance level of mediaframes that are associated with speech (see, for example, FIG. 24).

The characteristic of the media stream may be an importance of a certainperson, wherein a face of the certain person appears in the media stream(see, for example, FIGS. 23 and 24).

The characteristic of the media stream may be an importance of a scenein the media stream

Stage 1850 may include generating the modified media stream in responseto a face attribute that is indicative of an importance level of mediaframes that comprise faces (see, for example, FIG. 24).

Stage 1850 may include generating the modified media stream in responseto an action attribute that is indicative of an importance level ofmedia frames that are associated with action (see, for example, FIG.24).

Stage 1830 may include displaying to a user metadata relating to aportion of the media stream and may be executed while acquiring (1810)another portion of the media stream.

Stage 1850 may be followed by stage 1860 of generating a mosaic ofvisual entities, wherein a first visual entity of the mosaic representsthe altered media stream; and wherein at least a second visual entity ofthe mosaic is not representative of the altered media stream; wherein arelationship between a size of the first and second visual entities isresponsive to a relationship between importance levels associated withthe first and second visual entities. The visual entities may includestill pictures and video streams. A type of a visual entity can changeover time—thus a still picture can replace a media stream and viseversa.

FIG. 31 illustrates a screen according to an embodiment of theinvention. Screen 3600 displays a mosaic of visual entities such asvisual entities 3611-3619. Each visual entity can be a still image, amedia stream or a graphical entity. A visual entity such as an image ora media stream can be associated with text that can be included withinthe visual entity or located in another visual entity. The shapes of thevisual entities may differ from each other. The orientation of thevisual entities can fit their original orientation, but this is notnecessarily so.

Referring back to FIG. 18—method 1800 (or one or more stages of method1800) may be triggered in response to a detection of camera activity,when the user is located at a predetermined location, in response to anactivity of another user that is associated with the user.

Stage 1850 may include detecting faces of multiple persons in the mediastream and generating, for at least two of the multiple persons, amodified media stream that is generated by assigning to the personhigher importance than an importance of the other persons of themultiple persons.

Referring to FIG. 33—input video (media stream) is analyzed by enginemodule 3820 to extract n faces of n persons such as four faces 3831-3834of four, and for each face of each person the importance of the face isincreased and a unique media stream is created per person 3841-3844.

Referring back to FIG. 18—stage 1850 may be followed by stage 1870 ofdisplaying faces of persons that appear in the media stream anddisplaying information about the modified media stream to the user;receiving an instruction to share the modified media stream with acertain person that is identified by a certain face out of the faces;and sharing the modified media with the certain person if contactinformation required for the sharing with the certain person isavailable. Stage 1870 may also include requesting from the user thecontact information required for the sharing with the certain person ifthe contact information required for the sharing with the certain personis unavailable.

FIG. 32 illustrates a screen that displays a media stream to be shared3700, identified (previously associated or previously tagged) faces ofusers 3726 (Danny), 3720 (Shirli) and untagged (unidentified) faces ofusers 3722, 3724 and 3730. The media stream 3700 should be shared withuntagged user 3730 (the image of untagged user 3730 is dragged topartially overlap the media stream 3700). In case of an untaggedface—the person can be requested to provide information that mayfacilitate the sharing—by email, twitter 3702 or facebook 3704—on anyother social network of communication manner.

Referring back to FIG. 18—the media stream may include audio frames thatare synchronized with video stream; and stage 1850 may includegenerating a modified audio stream that comprises selected audio framesand a modified video stream; wherein the modified video stream comprisesvideo frames synchronized with selected audio frames and additionalvideo content; wherein the modified video stream and the modified audiostream are synchronized.

FIG. 34 illustrates an input audio component 3910 having a selectedportion 3912 that may be processed (or provided “as is”) to provideedited audio component 3930 to be synchronized with edited videocomponent 3940. Edited video components include portions 3491 that arelocated at the same points in time in the edited video component 3940 astheir corresponding video portions 3921 in the input video component aswell as additional portions 3492 that are located at different timepoints (and even out of order) in relation to the video portions 3922 inthe input video component 3920.

FIG. 19 illustrates method 1900 according to an embodiment of theinvention.

Method 1900 may include:

-   -   a. Receiving a media stream that comprises a plurality of frames        1910.    -   b. Generating a modified media stream that comprises selected        frames of the plurality of frames, wherein the generating        comprises excluding rejected frames of the plurality of frames        1920.    -   c. Displaying to a user information about the selected frames        and the rejected frames 1930.    -   d. Receiving from a user an instruction to alter the modified        media stream 1940.    -   e. Altering, in response to the instruction, the modified media        stream by performing at least one out of (a) adding at least one        rejected frame to the modified media frame; (b) removing at        least one selected frame from the modified media frame to        provide an altered media stream 1950.

Stage 1930 may include displaying to the user information on a touchscreen of a mobile device and stage 1940 may include receiving theinstruction from the touch screen.

Stage 1920 may include generating the modified media stream in responseto a type of soundtrack associated with the media stream.

Stage 1920 may include obtaining media streams from multiple users andto generate the modified media stream from frames of the media streams.

Stage 1940 may include receiving from multiple users instructions toalter the modified media streams and stage 1950 may include generatingthe modified media stream in response to the instructions.

Stage 1940 of receiving an instruction can include at least one of thefollowing:

-   -   a. Processing speech of the user that is sensed in proximity to        the acquisition of the acquired picture to extract the        instruction. The speech may include an explicit instruction        aimed to the mobile device but may be, alternatively, speech        that does not include an explicit instruction aimed to the        mobile device.    -   b. Processing mobile device movements made in proximity to the        acquisition of the acquired picture to extract the instruction.    -   c. Detecting gestures made by the user (or by a person being        imaged) to extract the instruction. Predetermined gestures can        be associated with certain instructions.

FIG. 20A illustrates method 2000 according to an embodiment of theinvention.

Method 2000 may include:

-   -   a. Acquiring at least one picture by a mobile device that has a        touch screen 2010.    -   b. Analyzing the at least one picture to provide analysis result        2020.    -   c. Suggesting to a user to acquire at least one other picture,        if the analysis result indicates that there is a need to acquire        at least one other picture 2030.    -   d. Acquiring the at least one other picture is instructed by the        user 2040.    -   e. Receiving from the user metadata related to an acquired        picture, the acquired picture is selected out of the at least        one picture and the at least one other picture 2050.    -   f. Processing the acquired picture in response to the metadata        2060.    -   g. Displaying the acquired picture to the user 2070.    -   h. Receiving from the user the metadata in response to the        display of the acquired image 2080.

Stage 2050 can be preceded by stage 2045 of displaying information aboutthe acquired picture to the user, and stage 205 may include receivingfrom the user the metadata in response to the display of theinformation.

Stage 2050 of receiving the metadata can be executed during theacquisition of the acquired picture.

Stage 2050 may include processing speech of the user that is sensed inproximity to the acquisition of the acquired picture to extract themetadata.

The speech may include an instruction aimed to the mobile device but maybe, alternatively, speech that does not include an explicit instructionaimed to the mobile device.

Stage 2050 may include processing mobile device movements made inproximity to the acquisition of the acquired picture to extract themetadata.

Stage 2050 may include detecting gestures made by the user (or a personbeing imaged) to extract the metadata.

Stage 2030 may include suggesting acquiring at least one other pictureof a person if an amount of pictures of the person is below apredetermined threshold.

Stage 2030 may include suggesting acquiring at least one other pictureif an amount of pictures is below a predetermined threshold.

Stage 2030 may include suggesting acquiring at least one other pictureif the at least one picture is of a quality that is below apredetermined threshold.

Stage 2030 may include suggesting acquiring at least one other pictureif the at least one picture is out of focus.

Stage 2030 may include suggesting acquiring at least one other pictureif the at least one picture comprise a partial image of a person andlacks a full image of the person.

Stage 2030 may include suggesting acquiring at least one additionalimage to be processed and provide a panoramic view of scenery.

Method 2000 may include stage 2090 of displaying instructions about anoptimal manner to obtain the panoramic view (speed of rotation of thecamera, duration of scanning by the camera, avoiding camera shakes).

Stage 2050 may include obtaining metadata from the user by allowing theuser to mark objects in the acquired image.

FIG. 28 illustrates method 3200 according to an embodiment of theinvention.

Method 3200 may include:

-   -   a. Receiving from a camera (3108) a video stream or one or more        pictures (3210).    -   b. Determining events 3220.    -   c. For each event:        -   1. Checking if there are enough materials for the event            (3230).        -   2. Assuming that enough materials are present—asking (2340)            the user if he wishes to edit the materials from the            event—editing can be done automatically, semi-automatically            and in any method illustrated in the specification. If so,            an editing is performed (not shown).

FIG. 20B illustrates method 2100 according to an embodiment of theinvention.

Method 2100 may include:

-   -   a. Acquiring at least one picture 2110.    -   b. Receiving from the user metadata related to a picture of the        at least one picture 2120.    -   c. Processing the at least one picture in response to the        metadata 2130.

The metadata may be indicative of an importance level of an object ofthe picture.

The metadata may be indicative of an importance level of a face includedin the picture.

Method 2100 may include stage 2140 of processing the at least onepicture and determine that an object of a picture is of importance.

According to an embodiment of the invention the at least one picture maybelong to a media stream. The processing of such a media stream isillustrated in FIG. 20C.

FIG. 20C illustrates method 2200 according to an embodiment of theinvention.

Method 2200 may include

-   -   a. Acquiring a media stream by a mobile device that has a touch        screen 2210.    -   b. Receiving from the user metadata related to at least one        video frame of the media stream 2220.    -   c. Processing the media stream to provide a shortened media        stream that is shorter than the media stream, in response to the        metadata 2230.

Stage 2220 can include:

-   -   a. Receiving from the user the metadata in response to a display        of at least a portion of the media stream.    -   b. Receive from the user the metadata in response to a display        of an automatically extracted meta-data from a media stream.    -   c. Receiving the metadata during an acquisition of the media        stream.    -   d. Processing speech of the user that is sensed during an        acquisition of media stream to extract the metadata. The speech        may include explicit instruction aimed to the mobile device but,        alternatively, does not include an explicit instruction aimed to        the mobile device.    -   e. Processing mobile device movements made during an acquisition        of the media stream to extract the metadata.    -   f. Detecting gestures made by the user to extract the metadata.    -   g. Detecting gestures made by a person that appears in the media        stream to extract the metadata.

Stage 2230 may include extracting an image of a person from the mediastream; and adding the image of the person to video frames of the mediastream that lacked the image of the person.

FIG. 21 is a schematic diagram of a computerized system 2500 accordingto an embodiment of the invention.

The computerized system 2500 may include the following blocks/modules:video capture and creation block 2510, engine block 2520, modify block2530 and finalization block 2540. The mobile device 2500 interacts withuser 10 and outputs an edited video clip 3000.

The computerized system 2500 can be a mobile device such as a mobilephone. Alternatively, the computerized system 2500 can differ from themobile device. It can be, for example, a server that can receive thepictures and/or media stream over a network. It can be a cloud-basedcomputer. Alternatively—the computerized system may include acombination of a mobile device and another computer—each can implementone or more of the mentioned blocks.

FIG. 38 illustrates some building blocks of the system 4200 according tovarious embodiments of the invention. The blocks of mobile device 2500can include some, all or none of the following building blocks:

-   -   a. Visual analysis module 4210 that may include at least one out        of: action analysis module 4121 (can detect action in pictures,        can receive action importance information—see item 2836), scene        analysis module 4214, topic analysis module 4216 (can determine        or receive a topic of a media stream), face detection module        4218 (can detect faces—see, for example, box 3310 of FIG. 29),        camera motion analysis module 4220 (camera motion analysis, can        detect camera motion and interpret certain motions as commands),        face indexing module 4222 (face indexing), face recognition        module 4224, mosaic generator module 4226 (can generate mosaics        such as mosaic 3600), objects analysis module 4228,        foreground/background segmenter module 4320 and person detector        module 4232.    -   b. Audio analysis module 4240 that may include audio analysis        module 4242 and speech recognition module 4244.    -   c. Another module 4250 that may include music analysis module        4252, gesture analysis module 4254 (can detect gestures and map        them to predetermined gestures representative of instructions),        automatic theme selection module 4256 and event detector module        4257.

Referring back to FIG. 21—a brief description of the various blocks isprovided.

It is noted that the modules may interact and that the blocks canoperate in a sequential or non-sequential manner. For example, thecomputerized system 2500 can decide to perform additional videoacquisitions if the outcome of the modify block 2520 indicates thatthere is a need to acquire additional footage. This is represents by anarrow from module 2520 to 2510.

Video Capture & Selection block 2510. In this block, the user cancapture videos (and images) that will be used as input footage for theediting. The user can optionally view and add meta-data and preferencesduring the capture (for example, by marking significant moments), or getinstructions from the system (for example: “Make a long shot forestablish”, “Take more footage of person A”, etc.). In addition, theuser can add external footage, such as videos taken outside theapplication, videos and images of himself or of others, music files,etc. In the most trivial case, the user can simply choose videos andimages from the camera-roll on the device.

According to an embodiment of the invention, the triggering to thecamera-editing session is done automatically by the system: for example,using a “camera listener” that is triggered by an action of the camera.

Engine block 2520. This block includes the analysis engine (in which theinput footage is analyzed automatically, extracting meta-data for allthe input footage and selecting the best portions of the video) and aproduction engine (that adds visual assets, synchronizes the video tothe soundtrack, and finally produces the edited video).

The video analysis can be done according to a non-parametric approach(described below). The meta-data includes, among others, a clustering ofthe scenes, camera-motion analysis, face-indexing, action analysis,salient activity detection, etc. Based on the extracted meta-data, thebest portions of the input videos are selected (denoted as the “SelectedScenes”), and are joint together to generate a suggestion for an editedvideo clip. The video analysis can be done either on the server or onthe device (or both).

Modify block 2530. The user can view a suggestion for the edited video;he can accept or reject these suggestions. In addition, he can modifythe edited clip by removing some of the selected scenes (i.e., selectedportions of the input videos) that were used to generate the suggestedclip or he can add some deleted scenes, i.e., video portions that werenot included in the original suggestion.

The user may also be guided by the system for improving the inputfootage to the editing, e.g., get tips such as: “The video footage istoo short or boring”, or “Take more videos of a person A, etc.

The user also change his preferences (for example, “Person A is veryimportant”, while “Person B is not important”, etc’).

Finalization block 2540. FIG. 21 illustrates a module in which theproduction engine is running given the meta-data, the selection ofportions from the video, and the user preferences. In this module, theselected clips, together with the soundtrack and the production elements(transitions, effects, themes, etc.) are rendered in some resolution(pre-defined, or selected by the user) to get the final edited clip.

This module is used, for example, if the user confirms the systemsuggestions, but wishes to get it in a better resolution or using adifferent theme (or different visual assets).

This module may be technically the same as the production part of theengine block it receives the scenes selections, and the soundtrack, addsvisual assets (such as effects and transitions), and produces the editedvideo. The final production can be done using various of commercialtools such as “Motion” of Apple.

FIGS. 22, 23, 24, 29, 30, 31, 32, 36 and 37 illustrate variousscreenshots of a user interface (UI) according to various embodiments ofthe invention.

FIG. 22 illustrates screen 2600 that displays information (images) thatrepresents

-   -   a. Different selected video frames—each image out of images        2610-2660 represent a selected portion of a media stream, and    -   b. Different non-selected (rejected) video frames—each image out        if images 2670-2690 represents a rejected portion of a media        stream.

FIG. 22 also illustrate metadata (or feedback) provided by theuser—which selects (marked by an acceptance sign) images 2620, 2630,2640, 2660, 2680 and 2690 to be included in a new (modifier or altered)media stream.

Screen 2600 includes title 2602 “pick videos”.

FIG. 23 illustrates screen 2700 that is titled “important people” 2750,and displays faces 2710, 2720 and 2730 of three persons, wherein theuser selected the faces of two persons 2710 and 2730 to be important.Screen 2700 also includes a status field indicating the number ofimportant people that were selected—“2 important people were picked”.

FIG. 24 illustrates screen 2800 that is titled “user preferences” 2810,and displays faces 2812, 2814 and 2816 of three persons, wherein theuser can selected the importance of each of these persons by peopleimportance bars 2822, 2824 and 2826 respectively. Other user preferencescan be selected by respective bars 2832 (speech), 2834 (faces), actions(2836), length (2838), tempo (2840) and effects (2842). It is noted thatthe bars are just one graphical embodiment of receiving inputs from auser.

FIG. 29 illustrates screen 3300 that is displays an image 3320 of aperson. The mobile device detects a face (it is surrounded by box 3310),and the user can provide metadata relating to the importance of theperson by selecting icons such as like, dislike (3340) or any one out ofmultiple faces 3330—each associated with a different mood.

FIG. 30 illustrates screen 3300 that displays a partial (and not full)image 3510 of a person in which only a parts out of a desired part ofthe person is shown (for example only a part of the face of the personis shown) and the mobile device displays instruction to the user such as“move the camera left” 3520 and an arrow the points to the left.

FIG. 36 illustrates screen 4100 that displays an image of a person 4120and multiple faces 4130 of other people that were detected in the past,according to an embodiment of the invention. Alternatively, only facesof persons that were defined as important are marked.

Important faces 4130 from previous and current video/picture in thissession (or event) are extracted and displayed to the user during thevideo/image capture.

The user can remove a face from the list 4130, indicating that this faceis not important.

FIG. 37 illustrates screen 4150 that displays an image of three persons4180, 4170 and 160, out of which the faces of persons 4170 and 4160 aredetected and surrounded by dashed boxes and the user can select one ormore of these faces (for example the face of person 4160) to indicatetheir importance. Alternatively, only faces of persons that were definedas important are marked.

Accordingly, the mobile device may automatically determine the importantfaces based on automatic analysis of faces, and the user canselect/reject faces as being important or less important.

The Video Capturing & Selection Block (“Smart Camera”) 2510.

In this block, the user can capture and select videos (and images) thatwill be used as an input footage for the editing. In the proposedsemi-automatic framework, the system can guide the user how to improvethe captured videos even during the video capture. It should be notedthat the features described next are optional extensions—in the simplestcase, the user selects footage from the camera-roll.

System guides & suggestions. The application can guide the user forbetter video capturing and selection, based on earlier preferences ofthe user and based on the meta-data extracted from the videos during thevideo capture. For example, assume that the system detects a userintention to create a panorama of the scene (this intention can bedetected easily using camera analysis—detecting that the camera ispanning)—in this case the system may advise the user to pan the cameraslowly in order to avoid motion blur and stability problems. In anotherexample, the system detects that the camera is zooming on a person(which can be detected automatically using face & zoom detections), andadvises the user to improve the image framing by positioning the personin the middle of the frame. Other examples for system guides are:

-   -   a. Shoot more videos, if the footage is not enough.    -   b. Add an “Establish” for the video or for a scene, for example,        by shooting a “long shot” video clip, that is, a shot of the        scene taken from a distance.    -   c. Take more photos or videos of person A.    -   d. Hold the camera more stable (if it is shaky).    -   e. Take a panorama of the scene (by scanning the scene with the        camera)    -   f. Zoom-in or zoom-out.    -   g. Use certain themes or soundtracks for the video editing.    -   h. Move the camera to the left to better capture a person or an        object.

When computerized system 2500 applies a smart camera process, the systemautomatically detects the face, and suggest to the user to place thecamera differently in order to bring the face to be fully inside theframe (or be in the center of the frame).

User preferences & Meta-data: The user can optionally add his ownpreferences, either during, before or after the video capture. Examplesfor such preferences can be:

-   -   a. Marking good/significant moments (“like”): such button can        affect the video editing by increasing the score of scene        selections that includes this moment in time, and thus making it        more likely to be selected (in an extreme case—it can enforce        selecting a video portion that includes this moment).    -   b. Marking bad/boring moments (“dislike”): making this moment        less likely to be selected (E.g., by adding a penalty to “scene        selections” including this moment).    -   c. Marking important persons in the video. These persons will        get more weight in the edited video: this marking can be done        either by tapping on top of a figure in the video (during video        capture), or by confirming faces detected automatically by the        system (as shown in the Figure below). Equation 1 and Equation 2        demonstrate the ways in which such preferences can influence the        editing.    -   d. Marking less important characters (which will get a smaller        weight in the edited video, or will be entirely omitted).    -   e. Marking important places, scenes, pets and other objects.

In addition, the user can add general meta-data to help the editing. Forexample:

-   -   a. A shooting mode (panorama, long shot, close up).    -   b. The type of scene or video (singing or dancing, party,        travel, etc’).    -   c. Notifying the user's mood (sad, happy, sleepy, etc.)

In FIG. 30, the user can express his mood and like/dislike a moment intime. This figure also shows how the user can confirm a system meta-data(in this case—a detected face).

As indicated above the system automatically detects the face, and marksit on top of the camera during the video capture (If the systemrecognizes an already tagged face, it can display its name). The usercan confirm (see, for example, FIG. 29) that the meta-data (face, tag)is correct, or indicate that this is an important person, etc. Inaddition, the user can press the “like” or “dislike” buttons, toindicate good (/important) or bad portions in the video. Finally,different user preferences can be given by the user, for example“telling” his mood (in the example this is done by tapping on top of oneof the emotion faces in the top of the screen).

User preferences by gestures: The user can use gestures during the videocapture to add his own preferences, or add other meta-data that willlater be used for the video editing. The user gesturing can be doneusing hand movements in front of the camera, or using signs (e.g., byshaking the camera, doing pre-define hand movements, predeterminedgestures of the person being pictures, or facial expressions (smiling,sad face, etc.)).

User preferences by voice recognition: The system can use voicerecognition to receive user preferences. The system can process speechthat does not include explicit instructions aimed to the mobile deviceto extract instructions—for example, a “Wow” shout may be used as anindication for an important moment, while “Ooooch” might be used toindicate a bad shot.

User preferences by Graphical UI: The user can give inputs andpreferences through a user interface on the screen. For example, havingscreen buttons such as “Like” (The user likes the current part beingshot, “Dislike”, “Zoom”, “Zoom Out”, “Close-up”, “Important Person”,“Scenery”, etc. An example with some user preferences buttons is shownin FIG. 24.

Displaying meta-data: Optionally, some analysis of the video can be doneduring the video capture. This include, for example, face detection,face-tracking, body detection, tracking of moving objects, camera-motionanalysis, etc. Some of this meta-data (or a driven information) can bedisplayed to the user on the screen, and the user may give a feedback tothis information, for example, accepting or rejecting the systemsuggestions. As an example, detected faces can be display on the screen,and the user can select only the important ones, while rejecting others.The system may ask the user to position the camera differently toimprove the framing of the scene.

Mixture of multiple visual assets: The user can choose to combinemultiple visual assets (videos, images, animations). For example, theuser can take an animation video, and combine it with the video justbeing captured. Consider, for example, an animation video of fishes.Combining it with an indoor scene will seem as if the fishes arefloating inside the room. Optionally, the merged video can be modifiedaccording to the video being shot: for example, the fish is “trying” toavoid occlusions with objects in the room Implementing this featurerequires video analysis—for example, extracting 3D information of thescene and fitting it to the know 3D structure of the animation.

Combining a person and a new scene: A specific case of combiningmultiple visual assets is “pasting” a person into a different scene.

In many cases, people want to take a video or a photo of scenery, butwish to see themselves inside the video. A trivial way to do so is bystanding with the back to the scene and capturing both the scenery andthe people. However, a more convent way is to shoot the scenery, and addthe user in an artificial way.

Another usage is “pasting” an acting person into a different scene—forexample, letting the person shoot himself dancing at home, and get anedited video in which its seems as if he was dancing in a show or in aprofessional music clip.

This can be done in the following way (a flow diagram is shown in FIG.35):

Extract from input video (4002)—a person (foreground video—of a person)from a background (4004) using one out of numerous known algorithms forforeground-background separation).

If the person is shot in front of a uniform background such as a bluescreen, this becomes a trivial task which is a common know-how in theliterature. Keep the alpha channel that stores the (dynamic) mask of theforeground.

Edit (4010) the foreground video (and optionally the background video):select best portions, using methods such as the ones described below andespecially the non-parametric approach illustrated below and “Paste” theactor (foreground video) on top of a different background video (4008)using the corresponding alpha channel.

This flow may include a video editing stage before merging theforeground with the background.

Soundtrack pre-play: The application can let the user play apre-selected soundtrack during the video shooting. This may help himsynchronize the video with the soundtrack (for example, for creating a“dance” video clip). Besides the simple UI component that lets the userrecord a video while playing the soundtrack, the rest of the process isidentical to the “music-clip” mode.

Combining external materials: In addition to (or instead of) shootingvideos, the user can also select a set of assets (videos, images, music)taken outside the application and use them as an additional material forthe video editing.

The Engine Block

This block includes the analysis engine (in which the input footage isanalyzed automatically, extracting meta-data for all the input footageand selecting the best portions of the video) and a production engine(that adds visual assets, synchronizes the video to the soundtrack, andfinally produces the edited video). The video analysis can be doneaccording to the non-parametric approach detailed below. The meta-datais used to save work for the user—by automatically analyzing the videos,the system can make decisions that are otherwise (as in the manualediting case) done by the user: The system uses the meta-data toautomatically select a pool of clips (“Selected Scenes”), chose startingand ending points for each clip, synchronize the soundtrack and thevideo, mix the audio and the soundtrack, stabilize the video, etc. Italso generates a full suggestion for an edited video that can be latermodified by the user.

The meta-data includes, among others, a clustering of the scenes,camera-motion analysis, face-indexing, action analysis, salient activitydetection, etc. Based on the extracted meta-data, the best portions ofthe input videos are selected (denoted as the “Selected Scenes”), andare joint together to generate a suggestion for an edited video clip.The video analysis can be done either on the server or on the device.

Pre-processing & uploading: The analysis of the raw footage can be doneeither in the server or on the device. Alternatively, somepre-processing is done on the device (such as downscaling the videos toa smaller scale) and the rest is done on the server.

For the server option, the application has to upload the footage (orparts of it) to the server. Optionally, the upload can be done notdirectly from the mobile device but indirectly from a storage location,such as using the iCloud or GoogleDrive.

To save upload time, the videos can be down-sampled and/or compressedbefore the upload. The video analysis runs on the low-res videos,determining the selected video portions (selected scenes) to be used inthe final production (edited video). Then, either a low resolutionresult is produced (from the low-resolution uploaded videos), oralternatively, after selecting the best video portions, the system canupload only the selected portions in a higher resolution to obtain an HDedited vide without uploading the full videos.

Another optimization can be achieved by doing some computation insidethe mobile device (for example, face detection, camera-motioncomputation, etc.), and using these computations to reduce the amount ofvideo being uploaded, either by doing a rough selection already on themobile device, or by uploading different portions of the videos indifferent resolutions according to some importance or quality score(e.g., face regions might be important).

The Modify Block

The engine block automatically generates a suggestion (or severalsuggestions) for the edited video. This suggestion is displayed to theuser, and if he likes the result (or is very lazy), he can decide to usethis suggestion as is.

In additional, the user may receive guides from the system, such as:“More footage is needed”, “Shoot more videos or shoot more videos ofparson A”, etc.

The user can edit the video in a semi-automatic way. Instead of doingall the editing work, now the user is the “Director”: he gives guidesand directions to the system for example by selecting his preferredscenes, but most of the labor and the technical work is still by thesystem. The main block for user modifications is through the “Modify”block: The system's suggestion is displayed to the user, together withthe “selected scenes” (selected portions of the input videos) and“deleted scenes” (video portions that were not selected for the initialsuggestion but can be used for a modified version based on the userpreferences). The user can add or delete scenes, and in this way tocontrol the video editing with a minimal work.

An example of such a modification screen is shown FIG. 22. The user canreceive an output from the engine block (2910), the mobile device mayfind the best scenes (2920) and display to the user rejected andselected scenes (2930, 2940), the user can provide input/instructions(2960) and in response a modified media stream is generated (2970) byremoving “Selected scenes”, or adding some “Deleted scenes” (rightfigure). These modifications are sent back to the system, which caneither finalize the result (2990), or go back to the analysis stage(suggesting an edited video stream 2950), generating a new suggestion.

As an example, a typical number of selected scenes ranges between 7-20scenes, and the number of rejected scene ranges between 1-15 scenes. Atypical ratio between the number of selected and rejected scenes is 2:1or 3:1. Optionally, the number of rejected scenes can be larger, butonly some of them will be shown to the user by default, and the rest areshown only per user request. The number of rejected scene might alsodepend on the duration of the input videos.

Here we describe a simple ‘modify’ flow, where the user only choosesfrom a set of selected and deleted scenes:

The engine block outputs a set of “best scenes” s₁, . . . , s_(n) (eachis a selected portion of the original videos): each one of the “bestscenes” comes with a score (computed by the engine): w₁, . . . , w_(n).This score estimates the importance of each selection to the finalediting. For simplicity assume that these scores are sorted (w₁>=w₂, . .. , >=w_(n)).

The system takes the k best selections from this set (denoted as“selected scenes”), and automatically produces an edited video.

The users gets the produced video, together with the sets of “selectedscenes” (used in the editing) and “deleted scenes” (not used in theediting). He can choose to remove some of the selected scene, or addones from the deleted scenes (He might also be able to change the orderof the selections).

The user selections, denoted as the “new selected scenes” s′₁, . . . ,s′_(m) are used to create a new edited video.

This process might repeat iteratively (letting the user re-select thescenes).

In is noted that the user may choose a set of “scenes” (orclip-selections) from a pre-determined set that were automaticallyselected by the system.

Modify flow by changing user preferences (see user preferences diagram).

The user can also add/modify his own preferences. For example, the usercan select the people that are important and that will appear in theoutput video (Examples are shown in FIG. 23). In addition, he can selectimportant scenes, locations, objects, etc. All these assets are createdfrom the meta-data, using the video analysis block, and are displayed tothe user in the Modify screens.

The user can select important people, locations and scenes (see, forexample, FIG. 24).

The user may decide to manipulate the output video in several otherways. For example, he can add or change the titles, change the soundtrack, select themes and styles, etc.

An example to how this user preferences feature be implemented isdescribed below.

Assume that the scene selection module (part of the video editingengine) is done by optimizing the following score (Eq. Equation 1):

E(s)=αE _(faces) +βE _(scenes) +χE _(actions) +δE _(other-scores)  Equation 1:

Where S=(s₁, . . . , s_(k)) is a scene selection (i.e.—a set of selectedportions from the input videos), E is the score, E_(faces) is arepresentatives score for faces (measuring how well we represent faces),and in a similar way, E_(scenes) and E_(actions) measure how well werepresent scenes and actions, and finally E_(other-scores) includes allother measures for selection (e.g., speech representativeness, avoidingmoments when the camera is shaking, etc’). The multipliers α,β, etc.comes from the relative importance of each component.

Each component can be written as a weighted sum of specific facerepresentativeness (i.e., how well do we represent a specificface/person in the video. The weights can be determined by theimportance of each face in the video, and be determined from factorssuch as: the size of the face, its frequency (in the input video), orwhether it was tagged by the user, etc.:

E _(faces) =a ₁ E _(face i) +a ₂ E _(face 2) +a ₃ E _(face 3) + . . . +a_(n) E _(face n)   Equation 2:

Similarly, the other components (such as the scenes and actions) canalso be written as a weighted some of representativeness of specificscenes/actions.

Coming back to the modify block, the user can influence the videoediting by changing the importance of entire components (e.g., faces areimportant in this video session) or the importance of specific objects(e.g., the importance of a specific face).

The user can also set general attributes of the output video (length,tempo, the amount of visual effects in the production, etc.). Theseattributes might affect the scene selection (e.g., the length of theoutput will affect the number of scenes being selected).

An example for a UI which enables the user to directly control theimportance of visual assets such as faces, the importance of differentaspects of the videos on the video editing, and some generalrestrictions and preferences is shown in FIG. 28.

The user can directly controls the importance of different objects orvideo aspects in the editing (see FIGS. 23 and 24). For example—settingthe importance of specific persons, or changing the general importanceof “faces” (or people) in the editing. Making this weight larger mightsay that in the edited videos we will show more people, and might giveaway other scenes such as a nice scenery with no people in it.

If the user decides to add more footage, he can go back to the videocapture block. Alternatively, the user's preferences are sent back tothe engine block, generating a new suggestion based on the updated userpreferences.

When the user is happy with the result, a final step of finalization maybe applied. In this step an edited video in a desired resolution isproduced (for example—a video clip in HD resolution).

Automatic Theme Selection.

A theme is (1) a set of rules and parameters for the video editing. (2)A set of visual assets. For example, the theme “Energetic” includes aset of parameters that encourages using many short video portions(instead of a few longer ones), using many transitions & effects, etc'.The Energetic theme also consists of a set of corresponding visualassets such as effects and transitions (These effects are relativelyvivacious, for example, a “Brush Strokes” effect). In contrary, the“Soft” theme encourages choosing few long clips, and using simple andsoft transitions.

The theme can be chosen automatically using the platform. This choicemay be based on at least one of the following:

-   -   a. The sound-track—the type of soundtrack has a large influence        on the mood” or type of the video clip, which obviously has an        important role in choosing the theme. For example, a quiet song        will not fit well to a vivacious theme, but rather to a “Soft”        one. On the contrary, a user which chooses a sound track of        heavy metal song will be more likely to prefer vivacious themes        over soft ones. The type of the song can be determined in        advance for pre-selected library of soundtracks, or it can be        determined automatically according to the tempo of the songs        (there are various music analysis libraries that includes an        estimation of a song's tempo).    -   b. The activity in the video—videos with a lot of action        (jumping people, running, etc.) are more likely to fit into a        vivacious themes. The activity in the video can be determined,        for example, using motion analysis in the video, detecting large        motions. One way to detect activity is by computing optical flow        (the motion of each pixel in each frame), and measuring the        average amount of the motion in the video. Alternatively, frame        with high Saliensee are defined as having high amount of        activity.    -   c. Object detection—there are objects whose existence may        indicate on the content of the videos uploaded, and thus infer        for the preferred theme. For example, video with kids or babies        are more likely to fit into a “soft” theme or even a special        theme for kids. Existence of many people may indicate a party        (together with a large sound). Existence of mountains or lakes        may indicate a travel video, etc.    -   d. Video type classification: The user input videos can be        classified by their content: For example, saying that the video        is a travel video, kids, a video documenting a talking person,        etc. The type of video can determined using the meta-data        extracted as in the non-parametric processing.    -   e. User habits: for returning users, the choice of the theme can        be effected by their previous video sessions, either from their        old choices—user tend to have a consistent taste (if they always        selected a ‘soft’ theme, it might be better to use this theme as        a default choice), and continuing with the meta-data extracted        from the earlier sessions. For example, some users always takes        videos of their babies. The next video will be, in high        probability, another video of the baby. Another        example—detecting a lot of activity in user's video will        increase the probability that the next video will have a lot of        action (favoring more vivacious themes)    -   f. Time and location of the video. E.g., if the user lives in        one country, and the videos are taken in another county        (especially if the location changes frequently), it may be a        good indication for a “Traveling” theme (In this case the system        might also add assets that are specific to the location of the        user: e.g., Italian music and a map showing the route of the        trip.    -   g. Layer-Based effects: Foreground/Background segmentation can        be done using various known methods. This segmentation can be        used to improve the production of the edited videos, by applying        effects only to one of the layers, such as: fast forward        (creating a time lapse only on the background), applying some        image filters, adding animations, etc.

Events

Event-Driven video capturing: The input materials for the video editingcan all relate to a specific event. For example, videos of a trip, or ofa party. Optionally, the videos can be uploaded not by a single user,but by multiple people that participate in this event: For example, theparticipants of a party, or all the people that are shooting a video ina certain place (a pub, a public location, etc.).

FIGS. 26 and 27 illustrate triggering event according to variousembodiment of the invention.

A camera listener 3102 in a mobile device 3100 may be coupled to camera3108 and may trigger a video editing sessions.

A database of users (or just his friends) is searched for users in thevicinity (according to their GPS) or which might be interested in thisevent.

Those users are asked if they would like to join the session: either ascreators (adding footage of their own) or viewers (can only watch videosand photos).

An event-driven video session is created, which can process raw materialfrom multiple users, and have multiple viewers.

To improve the user experience, an optional mode of the application isan online mode: After uploading some materials, an edited video isproduced, and it can be seen by other users. Then, these users may addvideos of their own, and create a new edited video (which includes partsof their materials). This mode encourages “social” use of theapplication.

Time line: When a user creates a set of edited videos using theapplication (it can be over time), these videos can be used as a “Timeline”: A short summary of his life, or periods of his life (e.g., lastweek, last month, etc’). The user can choose to create a presentation ofhis life (or parts of them) by combining together multiple earlierresults of the application from different time periods. The earlierresults can be either video clips, or sessions created by the system, inwhich case the meta-data of these sessions can be used again to savecomputations.

Another way to display the time-line of a user is inside a window whichshows the best/last video clips that were created using the application.This model can fit nicely into the “time-line” interface of facebook,which allows facebook applications to be integrated into the main “wall”or “time-line” of the user.

According to an embodiment of the invention, video editing sessions canbe triggered automatically by the system. Such a triggering can be basedon two sources of information:

a. “Camera Listener 3120”: One type of event is triggered by a “cameralistener”: a component in the mobile application that “listens” to thecamera 3108 (i.e., gets interrupts whenever there is an activity in thecamera, for example when the user captures a new video), or checks forchanges in user's storage of pictures and videos on the device) fromtime to time (e.g., every hour) and decide on the best events that canbe used as an input for a video editing session. The user can approve ordecline these event suggestions, or give his preferences for theapproved sessions.

This component uses the information of the media assets (videos andimages) in the camera roll (3130)—the times and, if available, the GPSinformation, to decide on “events”. For example: detecting a set ofmedia assets that were taken in an isolated time portion, or in acertain location (or some criteria combining both location and timeinformation).

An event can also be triggered by external information (e.g., thebirthday of the user). In this case, the camera-listener 3120 can offeran event that summarize a certain period of time for the user (e.g., asummary of the last year). This kind of automatic triggering isdemonstrated using the diagrams bellow:

According to an embodiment of the invention the camera listener 3120 mayinitiate a video editing session: In one option (a) the system asks theuser 10 if he would like to edit (by video editor) the videos (images)from this event. In the second option, the system automatically runs avideo editing for this event, and “approaches” the user already with theresulting edited video. The user 10 can be provided with suggestions ofevents and/or input material to be edited 3152 and provideapproval/disapproval/user preferences 3154.

The camera listener samples the camera roll from time to time (or istriggered by camera activity) and decide on the best events that can beused as an input for a video editing session. The user can approve ordecline these event suggestions, or give his preferences for theapproved sessions.

Another option for trigger video editing sessions is using material thatare stored by a editing system itself (i.e., based on video sessionsthat were done in the past): in this case, the system can trigger to doa new session in which the material uploaded to the system arere-organized. For example, creating a summary of all videos of the user,or of all videos from a certain period of time (week, year, etc.). Thesystem may also suggest to do a re-editing of the same materials in adifferent way (e.g., using different graphical assets or editing style).In addition, the system can use the meta-data extracted from the mediaassets to trigger an event—for example—create a video from material inwhich a certain person was detected. (This triggering is based on facerecognition that can be implemented, for example, using the methoddescribed in the “non-parametric approach” section below).

This can be implemented using the following scheme:

-   -   a. For each analyzed video/image—detect faces in it, and cluster        them to groups (faces of the same person will go to a single        group)    -   b. Determining the important faces (e.g., the ones which appear        in several videos)    -   c. If an important face is detected in a new video/image—finding        all the media in which this face appears (optionally—limited to        a range of time), and trigger a video session that will use all        these media assets.

Collaborative editing: in a “social mode”, the automatic triggeringmight be based on activities of other users. The system detects an eventof another user which has some relations with this user (for example,they are both in the same location, or they are recognized as friends,e.g., friends in facebook) and triggers a video editing session for bothusers (or it can be multiple users). In this case, the session will haveinput materials from both users (i.e., both can upload videos) and theedited video will contain materials from multiple users. In the moresimple case, the editing itself can be done in the same way as it isdone for a single user—just the input material is changed.

Personal Editing: It was shown how the user can control the videoediting by giving his preferences, for example, by increasing ordecreasing the importance of a certain face (/person). The sameframework can be used to create multiple edited video, each best fittingto a different viewer or user: a simple way to do it is demonstrated inFIG. 33: each one of the face tags extracted from the video is used tocreate a “personal” edited video—its weight in the editing issignificantly increased in the editing (See Equations 1-2), resulting ina video in which he appears many times, feeling as if he is “staring” inthe video (other tools can help to increase this feeling, for exampleusing visual effects that highlight this person).

As indicated above—FIG. 32 illustrates the generation of multiple editedvideos based on different face tags: in each video, this person is“staring”. This is done by increasing the selection weight of thecorresponding face.

Sharing

Video sharing is an important part of the system: unlike the originallong and boring videos, the edited videos are short and visuallyappealing—they are now worth sharing. The meta-data computed by theengine can be used to encourage sharing.

The faces extracted automatically by the engine, together withpreviously tagged faces are shown to the user, (optionally) togetherwith other sharing options (such as facebook, twitter, etc.). The usercan share a video or an image with one of the persons corresponding tothe faces. If the face is attached with a sharing information (e.g.,email) the sharing can done automatically. Otherwise, the user is askedto tag the face and/or give sharing information such as an email.

This information can be saved for future sharing actions.

An example UI is shown in FIG. 32.

Sharing based on face tags can allow the user to share a video or imageto different people by simply dragging it on top of one of the faceimages. More details can be found in the body of the text.

Other Extensions

Music clip editing mode. One mode of work of the system can be acreation of “edited music clip”. In this mode, the user uploads a musicclip, instead of a sound track. This music clip can be either the user'sown clip (for example, a guy doing lapsing or dancing) or it can be anexternal music clip (for example, MTV music clip). In additional, theuser can upload additional material (videos and images). Both the musicclip and the additional material are edited together. The differencefrom the regular mode is:

a. The audio of the music clip is used as a sound track.

b. The synchronization of the video and audio are better kept: theedited video clip alternate between parts of the original music clipitself (in which the audio and video are obviously fully synced), andmoments where the audio of the music clip is played, but differentvisual assets are shown to make the edited music clip more interesting(a common thing in music clips). Periods of both the music clip and theadditional materials can be combined simultaneously using a splitscreen.

An example of such editing is illustrated in FIG. 34. A Typical inputvideo has both a video component and audio component. In the music clipmode the synchronization of the audio and the video is important—forexample, if the user is singing or dancing in front of the camera. Inorder to preserve the synchronization (at least in parts), we keep theoriginal audio component untouched (a→a′ box)—but only shortenedaccording to the duration of the edited video. Regarding the videopart—we take some parts of the video and keep their original timing(b→b′ boxes) in order to keep the video and audio synchronized. Gapsbetween these parts are taken from other locations in the input video(for these parts, the video and audio are not synchronized)—this type ofvideo manipulation is known in the video editing literature as a B-roll.

Optionally, this mode can be used to create a music clip in the formatsuch as “American Idol”: A user uploads a clip in which he sings, dancesor play music, and this clip is automatically edited together withmaterial related to this “theme”, for example, clips of the crowd, theshow, etc.

Browsing, Searching and Sharing of Personal Video by a Non-ParametricApproach

The term media entity refers to information representative of visualinformation, information representative of audio information or acombination thereof. Non-limiting examples of a media entity may includean image, a video stream, an access unit, multiple images, a portion ofan image, a portion of a video stream, a transport packet, a elementarystream, a packetized elementary stream, an audio stream, an audio frame,and any combination of audio representative information.

Any reference to a method should be interpreted as a reference to asystem and additionally or alternatively as a reference to a computerprogram product. Thus, when describing a method is it noted that themethod can be executed by a system or by a computer that executesinstructions of the computer program product.

Any reference to a system should be interpreted as a reference to amethod executed by the system and additionally or alternatively as areference to a computer program product. Thus, when describing a systemis it noted that the system can execute a method or can executeinstructions of the computer program product.

Any reference to a block can include a reference to a hardware block, asoftware block or a stage of a method. Thus, for example, any of theblocks illustrated in FIG. 4-9 can be regarded as method stages.

The methods, systems and computer program products may provide a unifiedand generic approach—the media predictability framework—for handling thenumerous capabilities required for a comprehensive solution.

Thus, instead of multiple ad hoc modules and partial solutions, themethods, systems and computer program products may provide a singlecoherent approach to tackle the entire problem.

The methods, systems and computer program products can be applied indiverse technological environments.

Methods, systems and computer program products may provide acomprehensive solution for using personal video as they enablesbrowsing, searching editing and production of personal video.

The methods, systems and computer program products may rely on a unifiedautomated media content analysis method, instead of relying on numerousmethods for implementing the long list of features required for ‘mediaunderstanding’. The proposed method relies on a unified content analysisplatform that is based on the Media Predictability Framework (discussedin the next section), which forms the technological foundation of theproduct.

In this section we discuss the various type of meta-data (and their use)obtained using analysis with the media predictability framework.

The processing of media entities may involve running software componentson various hardware components and the processing of data files inseveral internet locations. We use the following entities in the textbelow:

User Computer: A computer with general computing capabilities such asDesktop, Laptop, Tablet, Media Center, Smartphone.

Personal Media: Images and Video of any common format (e.g., for images:Jpeg, Tiff, Gif, Jpeg2000 etc. For Video: Avi, wmv, mpeg-4, QuickTimeetc.)

Private Data and Meta-Data Database: Binary and Textual data andmeta-data kept in tables and files either as a flat databaseorganization or as a relational database (e.g., MySql).

Interaction Server: An online server (either dedicated or in a computingcloud) which handles at least one of: uploading of user media,streaming, recording usage and viewing analytics, handling user andvisitor interaction and registration, handling online payment, storageof online data and meta-data, selecting ads per viewed video and peruser/visitor.

Content Analysis Server: A server which performs content analysis foruploaded user media (user video including audio, user images, userselected soundtrack)

Production Server: A server, which utilizes the original footage and theanalyzed meta-data to create various personalized and stylized videoproductions. This server may utilize professional video creativesoftware such as Adobe After Effects, Sony Vegas etc. to render thevideo production (e.g., video effects and transitions).

Online Data and Meta-Data Database: An online database, which containsBinary and Textual data and meta-data kept in tables and files either asa flat database organization or as a relational database (e.g., MySql).

User Interface Application: A standalone application or web application(runs inside a web browser) or a software widget or software gadgetwhich enables the user to (at least one of) play, view, browse, search,produce, upload, broadcast and share his personal media.

Mobile Application: An application designed for a mobile device (e.g.,Cellular application, iPad application etc.). This application is aspecialized user interface application for the respective mobile device.

Local Player—A mini-version of the User Interface Application withreduced capabilities, which runs locally on the user/visitor computingdevice using a playing platform (e.g., Flash, Silverlight, HTML5).

Electronic Media Capturing Device—An electronic device which can capturepersonal image and/or video such as: Camcorder, Still Camera,Camera-phone, Internet Camera, Network Camera, Camera embedded in UserComputer (e.g., Laptop) etc.

‘My Video; My Pictures’ any set of file directories or libraries whichreside on the user computer (e.g., on a Hard drive, or anyelectro-magnetic or optical media such as DVD, CD, Blue-Ray disk,Flash-Memory etc.) or on the user online folders (e.g., DropBox) andwhich stores the user personal media or shared media.

FIG. 1 illustrates an interaction server 10, a user computer 20 andimage acquisition devices 31-33 according to an embodiment of theinvention.

The user provides acquired media from image acquisition devices such ascamcorder 31, camera-phones 32, digital still camera 33, etc. The mediacan be stored in a private database 21 of the user computer 20 and/or beloaded to the interaction server 10.

If the user stores the media on the user computer 20, the contentanalysis engine 22 of the user computer 20 analyzes the media usingdatabase accesses to a database 23 of the user computer 20. The database 23 can store private data and private meta-data of the user.Another database 11 (also referred to as on-line database) can storedata and meta-data shared by multiple users. The other database 11 and acontent analysis server 12 belong to the interaction server 10.

The analysis results of the content analysis engine 22 or of the contentanalysis server 12 can be stored in either one of the databases 11 and23—based on, at least, a selection of a user.

The user can directly upload media to the interaction server 10. In thiscase, the media is stored on the online database 11 and be analyzed bythe content analysis server 12. The resulting data and meta-data can bestored on the Online database 11. Another option for the user is to usea combination of the approaches above: Uploading to the Interactionserver, downloading and synchronizing to the user computer andprocessing in the Content Analysis Engine.

FIG. 2 illustrates an interaction between a interaction server 10, theuser computer 20, a mobile network 50 and the Internet 60 according toan embodiment of the invention.

The user can interact using a User Interface (UI) Application whichmight be a standalone application or a web application in a web browser.Using this UI the user can search, browse, produce and broadcast hispersonal media (stored on the user computer 30). The UI may get inputfrom the original user media (e.g., on ‘My Video/My Pictures or otheruser media locations) with the extracted data and meta-data from theprivate and online databases 11, 15, 21 and 23. For instance, even ifthe user computer 20 has no private database, the user can still searchand browse the online databases 11 and 13 using the UI. Using the MobileApplication UI 60 the user can search and browse the data on theinteraction server 10 (according to his user privacy settings) frommobile platform (e.g., Cellular phones, iPad). Users as well as Visitorscan view, browse and search media on the Interaction server using the‘Local Player’ (e.g., Flash Player embedded in HTML pages) which can beembedded in other web content.

Browsing

Browsing enables users to quickly find interesting information, when theusers cannot easily describe what they are seeking. For this mode ofassociative discovery, it should be easy to understand the content of avideo and to quickly navigate inside video and between semanticallyrelated video clips.

In order to support browsing the invention enables automaticallygeneration of a table of content, of intelligent preview and thumbnails,of links to “similar” video, content based fast-forwarding and spatialvideo browsing.

Table of content may be a table-of-visual content (optionallyhierarchical), which segments a video (or any other set of visualentities) to scenes with similar visual content. Note that these scenesusually cannot be separated by detecting different shots and they mightoverlap in time (e.g., the cameraman zooms in on a first context thenmoves on to a second context, then returns to the first context).

Intelligent preview and thumbnails may include a very short (e.g., 5-10seconds long) summary of the most representative portions of the video.This condensed summary enables the user to get a quick impression of thecontent in the video. It could comprise frames (storyboard), short clipsor a combination of both. Such short representation can be even used asan intelligent thumbnail that plays the video preview when the userselects it (e.g., mouse hovers over thumbnail).

Link to “similar” video—may include a list of related video and images,where relatedness is determined according to direct visual similarity aswell as semantic similarity of the visual content: similar persons,similar objects, similar place, similar event, similar scene, similartime. The link can either point to an entire clip or to a time frame init. Such links enable associative browsing when the user in not seekinga specific content.

Content-based fast forward. Viewing personal video may become a boringtask very quickly, as real-life activity tends to repeat itself.Content-based fast-forward enables the user to fast forward to the nextnovel activity (with different actions, behavior, etc.). This capabilityis executed either by adapting the speedup to the (automaticallydetermined) degree of interest or by jumping to the next interestingsegment in the video.

Spatial Video Browsing. In many video shots, the camera wanders aroundwhile scanning the area of interest. Spatial Browsing enables the userto freeze time and simulate spatial browsing with the camera. Namely, inresponse to a request from the user to move the camera (via keyboard,mouse or touch screen) the viewed image will change to an image with theproper camera point of view.

Searching

The Search engine enables the users to quickly retrieve informationaccording to a given criterion. Searching can be done using a visual ortextual query. In order to enable searching the method enables deep,frame-based indexing, automatic tagging and keywords and criterion basedsearch.

Deep, frame-based indexing—The method creates an index of objects,actions, faces, facial expressions, type of sound, places and people.Objects includes among many possible options pets, cars, computers,cellular phones, books, paintings, TV, tables, chairs etc. The indexingincludes the extraction of new entities, comparing them to knownentities (e.g., a known face) and keeping an index item for them. Theindex can be associated with a frame, a video segment or with the entirevideo clip.

Automatic Tagging and Keywords—The method clusters repeating entities(e.g., a repeating face) and generates a tag from it. A tag has a visualrepresentation (e.g., image of a face) and a textual tag (e.g., name ofa person). The user can name a visual tag. Each frame has a list of tagsand each video has a list of the most important (frequent) tags. Theuser can add his own tags to the automatically generated tags. When atag has a semantic meaning (e.g., ‘dog’ as opposed to ‘Rexy’) the methodrelates the semantic meaning of the tag to other synonym keywordsenabling easier textual search.

Criterion based Search—The user can search by a query combining freetext, visual and textual tags. The method finds the video or the imagesthat are most relevant to the query. For instance, the user can select apicture of a person's face, select the textual tag ‘living-room’ and addfree text ‘birthday party’ (which is used as a keyword).

Automatic Editing and Production—In order to support sharing andbroadcasting of personal video the raw video should be edited andproduced automatically (or with minimal user interaction). The methodmay enable at least one of the following: (a) Automatic Editing of Videoand Images; (b) Semi-Automatic Editing of Video and Images; (c)Automatic Video production of selected clips; (d) AutomaticInterpretation of user directives; (e) Manual Post Production; (f)Personalized Production; (g) Professional Production; (h) AutomaticMovie “Trailer”; (i) Automatic Content Suggestions; (j) Automatic Newsand Updates; (k) Automatic Group and Event Suggestions; (l)Graphics-Video interaction; (m) Return to original video; (n) Uploadingand Broadcasting: and (o) Documentary web-pages.

Automatic Editing of Video and Images—The method automatically selectsand edits clips and images from raw video and images input, in order tocreate a shorter video summary. The automatic editing relies on variousfactors for choosing the most important parts: Faces, knownpersons/objects, camera motion/zoom, video and image quality, actionsaliency, photo-artistic quality, type of voice/sound, facial expression(e.g., smile).

As a part of the editing process, the image quality is improved usingde-noising, video stabilization and super-resolution. The automaticediting can change the speed of a video (e.g., slow motion/fast motion)or even convert a video clip to an image if, for instance, the clip istoo short. Another case for converting video clip to image is when thecamera pans and the automatic editing decides to create a mosaic imagefrom the clip.

The user can select a sound track to add to the edited video. Priormeta-data and analysis on the audio track might affect the automaticediting decisions (e.g., fast pace, short clips for high tempo audiotrack). The automatic editing is generating the selected clips (andimages) to fit a video length specified by the user (e.g., 45 seconds).

Semi-Automatic Editing of Video and Images—The user can modify theresulting automatic editing by the following operations:

Removing an Unwanted Clip

Adding a suggested clip (from an automatically prepared candidate list)

Selecting one of more faces to be emphasized or excluded from the editedvideo. This list of faces is automatically extracted from the video andcan be displayed to the user using a graphical user interface similar tothe figure below.

Other types of object or tagged entities can be similarly removed oremphasized (e.g. emphasizing a certain location).

FIG. 11 illustrates a process of editing a video entity.

Symbols representing media entity portions of interest 220, media entityportions that may be of interest 230 (but may have a lower importancelevel), features 240 (such as faces of persons) and feature attributes250 can be displayed to the user. The user can select which media entityportions to include in an edited media entity and can, additionally oralternatively, indicate an attribute such as an importance level offeatures. An attribute can reflect a preference of a user—for example,whether the feature is important or not, a level of importance of thefeature, or any other attribute that may affect an editing that isresponsive to the attribute.

According to an embodiment of the invention, an editing process caninclude one or more iterations. The user can be presented with mediaentity portions of interest, features, and even an edited media entityand receive feedback from the user (whether to alter the edited mediaentity, which features are more important or less important, addingmedia entity portions of interest, defining a level of interest thatshould allow an media entity of interest to be considered as a candidateto be included in an edited media entity, and the like.

These inputs are provided to any of the mentioned above blocks or systemthat may edit the edited media entity in response. The importance levelprovided by the user is taken into account during the editing—as imagesthat may include features that were requested by the user will be morelikely be included in the edited media entity.

Automatic Video production of selected clips—The selected clips andimages can be used in a straightforward manner to create a video clipsummary. However, the method can also provide a much more compellingautomatically produced video clip. The automatic production makes use ofa library of effects, transitions, graphic assets and sound tracks,which are determined according to the video and the extracted meta-data.For instance, an algorithm can choose to use a face-morphing transitioneffect between two clips, where the first clip ends in a face and thesecond clip starts in a different face. Another example is to use aneffect where the frame is moving in the direction of the camera motion.

Automatic Interpretation of user directives—The user can act as adirector during the filming of the video and perform various predefinedgestures, in order to guide the later automatic editing and productionstage. For instance, a user can indicate that he would like to create amosaic by passing a finger from one side of the camera to the other andthen panning slowly. Another example is that a user signals that he hasjust captured an important clip that should pop up in any editing by aspecial gesture (e.g., making ‘V’ with the fingers). In this manner, thesystem can identify user gestures and enables the user to act as thedirector of the automatic summarization in vivo.

Manual Post Production—The user can watch the resulting production andcan intervene to override automatic decision. For instance, the user canremove or add clips from a candidate list of clips using a simplecheckbox interface. In addition, the user can change the starting pointand end point of each selected clip. Moreover, user can change thetransitions if he likes, in a post production stage.

Personalized Production—besides manual post editing, the user can affectthe automatic production and editing stages using a search query, whichemphasizes the parts in the video, which are important to the user. Thequery can take the form of a full search query (text+tags+keywords). Forinstance, a query of the form ‘Danny jumping in the living room’ wouldput more emphasize in the editing and the production stages on partswhich fit the query. Another example is of a query which uses a visualtag describing a pet dog and a location tag with an image of the backyard. Another option for the user to affect the editing stage is bydirectly marking a sub-clip in the video which must appear in theproduction. Yet another example is that the user marks several people(resulting from Face Clustering and Recognition) and gets severalproductions, each production with the selected person highlighted in theresulting clip, suitable for sharing with that respective person.

Professional Production—The method allows an additional, professionalhuman editing and production. The method delivers the raw video, theextracted meta-data and the automatically produced video to professionalproducers (via internet or via a delivery service using DVDs, etc.).After the professional editing, the user receives a final product (e.g.,produced DVD) via mail or delivery. Such a professional production cancomplement the automatic production when professional quality is needed(e.g., for souvenirs, presents). Alternatively, the method can exportthe automatic editing and the respective meta-data to common videoediting formats (e.g., Adobe Premiere, Apple Final Cut).

Automatic Movie “Trailer”—The method described above for editing andproduction of video can be used to create an automatic movie trailer forevery video in the user library. This is a produced version of the videopreview, which can be served as the default version for sharing a singlevideo. This “Trailer” can also be used as a short version for variouskinds of user generated content (even if not personal), for instance forautomatic “Trailers” of popular YouTube videos for users who prefer toview the highlight before viewing the entire video.

Automatic Content Suggestions—The method automatically suggests to theuser edited video clips which are suitable for sharing. For instance,after the video from a recent trip was loaded to the user computer, themethod automatically produces the relevant data and suggests it to theuser, who can decide to share the suggestion by a simple approval of thesuggestion.

Automatic News and Updates—The method uses the extracted meta-data toautomatically find shared video and images which might interest theuser. For instance, the method can suggest to the user to view a videoin one of his friend's shared content in which he participates. In thismanner, a user can be informed of visual information, which may be ofinterest to him, even if he did not upload the video by himself.

Automatic Group and Event Suggestions—The method uses the extractedmeta-data and discovered similarities between user data and shared datato propose formation of groups of people (e.g., close family, tripfriends) and event suggestions (e.g., trip, party, birthday). In thismanner, shared media entities, which can be clustered with other media,can be grouped in a semi-automatic manner (with user approval). Inaddition, the method can suggest producing personalized summaries ofevents—for instance, generating a different summary for each chosenparticipant in which this participant is highlighted in the generatedsynopsis. Such personalized summaries can encourage event and groupparticipants to add their own media from the event, remix the resultsand so on. This can promote the building a large media pool of an eventor a group.

Graphics-Video interaction—The method enables to add a layer ofgraphic-video interaction, based on the extracted meta-data. Forinstance, a conversation bubble can track a person's head or face.Another example is of a graphic sprite interacting with the video (e.g.,a fly added as a graphic layer to the video and which avoids a person ashe moves in the clip). This added layer can be disabled by the user.

Return to original video—The method enables the user to return to theoriginal video clip from any point in the produced video bydouble-clicking (or tapping in touch screen) the display in that point.

Uploading and Broadcasting—The method enables the user to upload theproduced video and related meta-data to a video storage site, whichenables to embed the video to be streamed via a video player (e.g.,Flash Player) in various internet locations including: email, socialnetworks, blog sites, home pages, content management systems, image andvideo sharing sites.

Documentary web-pages—The method enables the user to create documentaryweb pages, which are dedicated for a certain entity such as event,person, group and object. For example, creating a web page of a child,where video clips and images of the child are kept, documenting thechild at different stages of his life. Another example is a pagedocumenting a party where all participating users are invited to viewcurrent productions, upload their footage of the party, invite furtherparticipants and use all uploaded footage to create new productions (andso on). A different example is a web page documenting a user's trips inthe world. Yet another important example is a memorial page dedicated tothe memory of a deceased person. The system can automatically detect newvideos or images that are relevant to the documentary page, and add themto the page via approval of the user. This web page can be organized asan album or as a storyboard, and can be accompanied with annotations andtext that was inserted automatically (using the meta-data) or by theuser.

FIG. 3 illustrates a method 300 according to an embodiment of theinvention.

Method 300 may start by stage 302 or 304. These stages are followed by asequence of stages 310, 320, 330, 340, 350 and 360.

Stage 302 includes selecting, by a user, clips and images to be includedin the production, a time limit and an optional query for indicatingimportance for the editing stage.

Stage 304 includes selecting, by the content analysis server or contentanalysis engine, clips and images automatically to be used in a proposedproduction

Stage 310 includes completing, by the content analysis server or thecontent analysis engine, any unfinished analysis (if any) for therequested media

Stage 320 includes using the ImportanSee measure and other meta-dataproperties to automatically provide at least one video editing proposal

Stage 330 includes adding, automatically, production graphics to thevideo according to the meta-data. Optionally suggesting by theproduction graphics, an audio track to add to the production

Stage 340 includes presenting the results to the user. The results mayinclude clip selection, additional media clip/images proposals (whichare currently out of the production), and relevant graphical effects.Optionally also previewing by the user the current production.

Stage 350 includes adapting the selection: changing start/end points,selected clips, audio track etc.

Stage 360 includes saving video production compilation in meta-data DBand produce video after obtaining user approval.

The Media Predictability Framework

The long list of features above is very difficult to implement in an adhoc manner Instead, the proposed method relies on a unified mediacontent analysis platform, which we denote as the media predictabilityframework. In this framework, we measure to what extent a query media(visual or audio) entity is predictable from other reference mediaentities and use it to derive meta-data on this query entity: Forinstance, if a query media is un-predictable given the reference media,we might say that this media entity is interesting or surprising. We canutilize this measurement, for example, to detect interesting parts in amovie by seeking for video segments that are unpredictable in thismanner from the rest of the video. In addition, we can use the mediapredictability framework to associate between related media entities.For example, we can associate a photo of a face with a specific personif this photo is highly predictable from other photos of that person.

In the sections below, we first describe the theoretical foundations ofthe media predictability framework, then detail the implementation ofthe media analysis building blocks using this framework. Lastly, wedescribe how to implement the diverse features above, providing acomprehensive solution for personal video using the media analysisbuilding blocks.

A Non Parametric Approach for Determining Media Predictability

The predictability framework is a non-parametric probabilistic approachfor media analysis, which is used by our method as a unified frameworkfor all the basic building blocks that require high-level mediaanalysis: Recognition, Clustering, Classification, Saliensee Detection,etc. We will first describe in detail the predictability framework andthen show how to derive from it the different building blocks.

Generally speaking, the predictability measure is defined as follows:Given a query media entity d and a reference media entity C (e.g.,portions of images, videos or audio) we say that d is predictable from Cif the likelihood P(d|C) is high, and un-predictable if it is low. Inthis section, we describe how to actually compute this predictabilityscore in a unified manner, regardless of the application.

Descriptor Extraction

In this subsection, we describe how to extract descriptors for a mediaentity.

A specific case of media descriptors is image descriptors. Each imagedescriptor describes a patch or region of interest or arbitrarily shapedregion in the image (this can also be the entire image). One of the mostinformative image descriptors is the Daisy descriptor (Fua 2008) whichcomputes a gradient image, and then, for each sample point, produces alog-polar sampling (of size 200) of the gradient image around this point(a detailed description is given in (Fua 2008)). Video descriptorsdescribe space-time regions (e.g. x-y-t cube in a video). Examples ofvideo descriptors include, raw space-time patches or concatenating Daisydescriptors applied on several consecutive frames (e.g. −3 frames,yielding a descriptor of length 200×3=600 around each sample point).However, there are many types of descriptors, known in the literature,that capture different aspects of the media, such as—simple imagepatches, shape descriptors (See for example (G. Mori, S. Belongie, andJ. Malik 2005)), color descriptors, motion descriptors, etc. Informationfrom different types of descriptors can be fused to produce betterpredictability estimation.

Similar to visual descriptors, audio can also be analyzed using audiodescriptors. Some audio descriptors that are popular in the literatureare MFCC, PLP, or the short-time spectrum. Audio descriptors can bespecialized for speech representation, music representation, or generalsound analysis. These descriptors can be computed, for example, usingopen source tools such as the CMU sphinx(http://cmusphinx.sourceforge.net/). Although each media has its ownvery different descriptor type, our predictability framework isapplicable to all descriptor and media types.

FIG. 4 illustrates a pre-processing block 40 according to an embodimentof the invention.

The pre-processing block 40 receives reference media entities 101 and aset of media data and outputs reference media descriptors 103 that canbe stored in a media descriptors database.

The pre-processing block 40 processes the reference media entities 101by a descriptor extractor 44 to provide a descriptor set of thereference media entities. The pro-processing block 40 generates (bydescription extractor 41 and representative extractor 42) a descriptorspace representative of the set of media data 102. The descriptor set ofthe reference media entities and the descriptor space representative arefed to a likelihood estimator 45 that outputs the reference mediadescriptors 103.

Descriptor Extraction: Given a reference set of media entities C, wefirst compute a set of descriptors over a set of sampling points. Thesampling points can be a uniform dense sampling of the media (forexample, a grid in an image) or only at points of interest (e.g.,corners in image). Let {f₁ ^(c), . . . , f_(K) ^(c)} denote the set ofdescriptors computed for the media reference C.

Descriptor-Space Representatives: Given a set of media entities (can bethe reference media itself), the descriptors for these entities areextracted. Next, the representative set is extracted from the fulldescriptor set in the following manner. A random sampling of thedescriptor can be used to generate representative, butvector-quantization might also be used (for example—using mean-shift ork-means quantization, etc.).

Density Estimation: Given both the descriptor-space representatives {q₁,. . . , q_(L)}, and the descriptor set extracted from the referenceC−{f₁ ^(c), . . . , f_(K) ^(c)} the next step is likelihood estimation.{f₁ ^(c), . . . , f_(K) ^(c)} is an empirical sampling from theunderlying probability distribution of the reference. In this step, weestimate the log likelihood log P(q_(i)) of each representative q_(i) inthis empirical distribution. Several non-parametric probability densityestimation methods exist in the literature. The Parzen estimation of thelikelihood is given by:

${\hat{p}\left( {\left. q_{i} \middle| f_{1}^{C} \right.,\ldots \mspace{14mu},f_{K}^{C}} \right)} = {\frac{1}{K}{\sum\limits_{j = 1}^{K}{K\left( {q_{i},f_{j}^{C}} \right)}}}$

where K(.) is the Parzen kernel function (which is a non-negativeoperator and integrates to 1;

A common kernel is the Gaussian kernel: (q_(i), f_(i)^(C))=exp(s∥q_(i)−f_(i) ^(C)∥²)) with s representing a fixed kernelwidth. The set of descriptor-representatives {q₁, q_(L)} together withtheir corresponding likelihoods {P(q_(i)), . . . , P(q_(L))} and theoriginal descriptors {f₁ ^(c), . . . , f_(K) ^(c)} are used to constructthe Media Descriptors Data-base, which is used in the query block

FIG. 5 illustrates a query block 50 according to an embodiment of theinvention.

The query block 50 receives a query media entity (d) 104, referencemedia descriptors from reference descriptor database and outputs apredictability score P(d|C) 54. The query block 50 includes adescription extractor 51, a set (1 to K) of descriptor likelihoodestimators 52(1)-52(k) and a combination unit 53.

Descriptor Extraction 51: Given a query media entity d, we first computea set of descriptors {f_(i) ^(d), . . . , f_(N) ^(d)} over a set ofsampling points (similar to the descriptor extraction step of thepre-processing block).

In addition, each descriptor is attached with a weight m_(i) of itssample point, which can be user defined. Commonly, we use uniformweights, but other weighting schemes can be used: for example, giving alarger weight to a region of interest (e.g., a ROI in an image whichgives a weight of 1 to all descriptors inside the ROI, and zerooutside).

Media likelihood Estimation 52(1)-52(K): For each descriptor f_(i) ^(d),the log-likelihood log P(f_(i)|C) is estimated, where C is the referencemedia. The log-likelihood of each descriptor can be estimated in thefollowing way:

log P(f _(i) ^(d) |C)=w ₁ log P(q ₁)+ . . . +w _(L) log P(q _(L)), (Σw_(k)=1)

Where P(q_(k)) are pre-computed values extracted from the referencemedia descriptor database, w_(k) are interpolation weights which aredetermined as a function of the distance of f_(i) ^(d) from q_(k). Thesimplest weighting scheme is linear, by setting w_(k)≡∥f_(i)^(d)−q_(k)∥⁻¹. This estimation can be approximated by taking only thefirst few nearest neighbors representatives, and setting w_(k) to zerofor the rest of the representatives.

More generally, the log-likelihood log P(f_(i) ^(d)|C) can be estimatedusing a non-linear function of the representative log-likelihood valuesand the distances from them:

log P(f _(i) ^(d) |C)=F({log P(q ₁), . . . , log P(q _(L)), |f _(i) ^(d)−q ₁ ∥, . . . , |f _(i) ^(d) −q _(L)∥})

Combination: All the likelihoods of the different descriptors arecombined to a predictability score of the entire query media entity d.The simplest combination is a weighed sum of the log-likelihoodestimations:

PredictabilityScore(d|C)=Σm _(i)·log P(f _(i) ^(d) |C).

Where m_(i) are the sample point weights mentioned above. If we havemultiple types of descriptors (referred below as aspects), {f₁₁ ^(d), .. . , f_(N1) ^(d)}, . . . , {f_(1R) ^(d), . . . , f_(NR) ^(d)} (I.e.—Rdifferent descriptor types or R aspects), the combined score becomes:

PredictabilityScore(d|C)=Σ_(r=1) ^(R)α_(r)Σ_(i=1) ^(N) m _(i)·log P(f_(ir) ^(d) |C)

Where α_(r) are weights of each aspect (they can be determined manuallyor automatically from a training set).

More generally, dependencies between the different descriptor types canbe taken into account by setting:

F _(Q)=[(Σ_(i=1) ^(N) m _(i)·log P(f _(i1) ^(d) |C))^(0.5), . . . ,(Σ_(i=1) ^(N) m _(i) ·F(f _(iR) ^(d) |C))^(0.5)]

And:

PredictabilityScore(d|C)=F _(Q) ^(T) *A*F _(Q)

Where A encapsulates the dependencies between the different descriptortypes (a diagonal matrix A will yield the previous formula, while takingthe covariance matrix estimated empirically will yield the generalformula).

Empirical Predictability Improvement.

The predictability score can be further improved using empiricalpost-processing.

Specifically, given a single media entity d, sometimes thepredictability scores for several media referencesPredictabilityScore(d|C₁), . . . , PredictabilityScore(d|C_(S)) aredependent.

As a result, comparing between different reference media sets can beimproved by empirically estimating the distribution of thepredictability score over a “training” set. This training set aims torepresent the set of queries, so it is best (if possible) to draw itrandomly from the query set. Note that the distribution that we aretrying to estimate now is simply the distribution of the predictabilityscores of a media entity given a set of references C₁, . . . C_(S) (notethat this generated a new “feature” vector of dimension S forrepresenting the query media). A straightforward approach is to use thenon-parametric Parzen estimation, which has been described earlier, orrecursively using our non-parametric likelihood estimation.

Media Analysis Building Blocks

In this section, we describe how to derive each building block using themedia predictability framework. The text below refers to the case ofusing a single aspect but the same approach holds for multiple aspects.

FIG. 6 illustrates a similarity block 60 according to an embodiment ofthe invention.

The similarity block 60 (also referred to as a similarity buildingblock) is used to quantify the similarity between two media entities M1,M2. To do so, we use each media entity twice: once as a reference, andonce as a query.

Referring to FIG. 6, the similarity block 60 receives a first mediaentity 111 and a second media entity 112. The first media entity isprovided to a pre-processing block 61 (when used as a reference) thatextracts first media entity descriptor space representatives that arefed (in addition to the second media entity) to a query block 50. Thequery block 50 outputs a predictability score of the second media entitygiven the first media entity.

The second media entity is provided to a pre-processing block 61 (whenused as a reference) that extracts second media entity descriptor spacerepresentatives that are fed (in addition to the first media entity) toanother query block 50. The other query block 50 outputs apredictability score of the first media entity given the second mediaentity.

Both predictability scores are fed to a unification unit 53 that outputssimilarity(M1, M2) 65.

In more details:

A descriptor database is constructed from each media entity (using thepre-processing block—as was shown in the pre-processing section of thepredictability framework).

The predictability PredictabilityScore(M₁|M₂) of media entity M₁ giventhe media entity M₂ as a reference is computed using the query block (asshown in the query section of the predictability framework).

Similarly, the predictability PredictabilityScore (M₂|M₁) of mediaentity M₂ given the media entity M₁ as a reference is computed.

The two predictability scores are combined to produce a singlesimilarity measure. As a combination function, one can use any bimodaloperator according to the specific application, such as the ‘average’ orthe ‘max’ operators.

The “Classification” Building Block

FIG. 7 illustrates a classification building block 70 according to anembodiment of the invention. The classification building block is alsoreferred to as classification block.

The classification building block is used to classify a media entityinto one of several classes. To do so, we collect a set of mediaentities that relates to each class, construct a media descriptor DBfrom each reference class, and compare the query media to all of themusing the query building block.

The classification block 70 receives reference media entities of eachclass out of multiple media classes—C1 120(1)-120(N).

A query media entity d 104 and reference media entities of each classare fed to N query blocks 50—each query block receives the query mediaentity d and one of the reference media entities of a class—separatequery blocks receive reference media entities of different classes. Eachquery block 50 outputs a predictability score of the query media entitygiven the media entity class. A classification decision block 72classifies the query media entity to one or these classes based on thepredictability scores.

In more details:

For each class C_(i), an example set of media entities relating to thisclass is selected.

For each set of entities, a descriptor database DB_(i) is constructedusing the pre-processing block—as was shown in the pre-processingsection of the predictability framework.

The predictability PredictabilityScore(d|C) of the query media entity dgiven each class is estimated using the query block (as shown in thequery section of the predictability framework).

Finally, the predictability scores are entered into the classificationdecision block, which outputs the classification of d (Note that theclassification doesn't necessarily have to be a hard decision on asingle class, but it can be the posterior probability of d to belong toeach class). The simplest decision rule is setting the classification ofd to be the class C for which the predictability score of d given C isthe highest. But other decision rules are also possible—for example,computing posterior probabilities (given the prior probabilities of eachclass). In addition, the distribution of the predictability scores givenall (or subset) of the classes can be estimated using a “training” set.(A simple way to do it is using the non-parametric Parzen estimation, asdescribed earlier). With this empirical distribution estimation, theprobability of classifying d with each class can now be determineddirectly from the distribution, providing “Empirically Corrected”probabilities.

The “Detection” Building Block

The classification block can operate as a detection block. Assuming thata certain feature is being searched in a query media stream. Onereference media entity class is selected as including the feature asanother reference media entity class is selected as not including thefeature. The query media entity and these two media entity classes arefed to the classification block that classifies the query media entityas being included in one of these media classes-a s including thefeature or not including the feature. It is noted that more than twomedia classes can be provided and may include different associationswith the feature (not just a binary relationship of including or notincluding the feature).

FIG. 10 illustrates a decision block according to an embodiment of theinvention. A set of media entities 160 that is pre-filtered 99 toprovide a set of candidates for searching the feature within. The set ofcandidates and two classes of reference examples 162 and 164 areprovided to a classification block 98 that decides whether the featureexists in the candidates. The output is a list of detections 97 thatindicates in which candidates the feature appears.

The detection building block is used to detect some pre-defined class(for example—face detection, or a detection of some specific person)inside a set of media entities. The detection building block is actuallya special case of the classification building block, in which the tworeference classes are the “Class” and the “Non-Class” (for example,“Face”—“Non Face”, “Speech”—“Non-Speech”), and the set of queries is allthe sub-segments of the media for which we would like to apply thedetection—for example, a set of sub-windows in a image.

Since the classification process usually takes too much time to beapplied on all sub-segments, a pre-filtering can be applied, choosingonly a subset of the segments. For example, the cascade based Viola &Jones method is widely used for object (e.g., face) detection,outputting a set of rectangles for which a face was detected. Yet, italso outputs a large set of erroneous detections, which can be furthereliminated by the “Class”—“Non Class” detection block describe herein.

The “Clustering” Building Block

The clustering building block is used to cluster a set of media entitiesinto groups. This building block is using the similarity building blockdescribed above to compute a similarity measure between pairs of mediaentities, and then use standard clustering methods to cluster theaffinity matrix.

FIG. 8 illustrates a clustering block 80 according to an embodiment ofthe invention.

The clustering block 80 includes multiple similarity blocks 60 that arefed with different media entities. During each iteration the clusteringblocks output a similarity score between two media entities. Thesesimilarity scores can be arranged to form a similarity/affinity matrix(or any other data structure) that is fed to a clustering algorithm 81that clusters the media entities based on the similarityscores—clustering M1, . . . , MN 85.

In more details:

For each pair of media entities M_(i) and M_(j), the similarity betweenthem is computed using the similarity building block (described above).

A similarity matrix A_(ij) is computed by A_(ij)=similarity(M_(i),M_(j)). This similarity matrix forms an Affinity matrix which is acommon input for many clustering algorithms.

Finally, doing clustering from a Similarity or an Affinity matrix iswell known in the art (For example, Agglomerative hierarchicalclustering, spectral clustering (Andrew Y. Ng and Michael I. Jordan andYair Weiss 2001) or simply merging all pairs for which similarity(M_(i), M_(j))>Threshold.

The “Saliensee” building block

FIG. 9 illustrates a SalienSee block 90 according to an embodiment ofthe invention.

The SalienSee block tries to predict a portion of a media entity (It)based on previous media entity portions (I1 . . . It−1) that precede it.

An input media entity 130 that includes multiple media entity portionsis fed to the SalienSee block 90 one media entity portion after theother so that the media entity portions can be evaluated in an iterativemanner—one after the other.

At point of time t a media entity portion (It) based on previous mediaentity portions (I1 . . . It−1) that precede it.

Query block 50 receives (as a query media entity) the media entityportion It and receives (as reference descriptor space representative)descriptors space representatives of the previous media entity portions.

The query block 50 calculates a predictability score that may beregarded as a saltiness score 95, The media entity portions are also fedto a database 92. The content of the database are processed bypre-processing block 40.

The proposed method uses a new measure called “SalienSee”. It measuresthe extent by which a point in time in the media is salient in themedia. This can also indicate that this point in time is “surprising”,“unusual” or “interesting”. We say that a media entity has highSalienSee if it cannot be predicted from some reference set of mediaentities. Let d be some query media entity, and let C denote thereference set of media entities. We define the SalienSee of d withrespect to C as the negative log predictability of d given C (i.e.SalienSee(d|C)=−log PredictabilityScore(d|C)). Using this notation, wecan say an event is unusual if its SalienSee measure given other eventsis high. For instance, the SalienSee measure can capture the moments invideo in which the activity becomes boring (which is very common in apersonal video)—for example, when someone starts jumping it might beinteresting, but the next jumps are getting more and more boring as theyare already very predictable from the past. Formally, let I (t₁, t₂)denote the time segment t₁<t<t₂ of the video clip d. We say that thevideo d(t, t+δt) is ‘boring’ if its SalienSee measure with respect tothe past is small, i.e, if SalienSee(d(t, t+δt)|d(t−T, t))<S, where T,δt are some periods of time (e.g., T is a minute, δt is a second.

Implementing the personal video features above using the building blocks

As shown in the previous sub-section, all the basic building blocks thatare used by the proposed method can be directly implemented using themedia predictability framework Next, we show how these building blocks(e.g., Recognition, Clustering) can be used to realize the long list offeatures, presented above, in order to enable comprehensive solution forsearching, browsing, editing and production of personal video.

Tagging: Automatic tagging of media entities is achieved by applying theDetection/Recognition building block several times. Some tags areextracted by solving a detection problem. For instance adding a tag“face” whenever the face detector detected a face in a video clip, or atag “applause” when a sound of clapping hands is detected. Other typesof tags are extracted by solving a recognition (or classification)problem. For instance, a specific person-tag is added whenever theface-recognition module classifies a detected face as a specific,previously known face. Another example is classifying a scene to be“living-room scene” out of several possibilities of pre-defined scenelocation types. The combination of many detection and recognitionmodules can produce a rich and deep tagging of the media assets, whichis valuable for many of the features described below.

The method utilizes at least some of the following tagging: face poses(“frontal”, “profile” etc.), specific persons, facial expressions(“smile”, “frown” etc.), scene-types (“living-room”, “backyard”,“seaside” etc.), behavior type (“running”, “jumping”, “dancing”,“clapping-hands” etc.), speech detection, soundtrack segment beatclassification (e.g. “fast-beat”, “medium-beat”, “slow beat”), voiceclassification (“speech”, “shout”, “giggle”, etc.). Note that the MediaPredictability Framework enables a single unified method to handlerecognition and detection problems from completely different domains(from behavior recognition to audio classification), simply by supplyingexamples from the recognized classes (whether video, image or audioexamples).

ImportanSee: our “ImportanSee” measure is used to describe theimportance or the amount of interest of a video clip for someapplication—for example, in a video summary we can display only theimportant parts while omitting the non-important ones. In principle,this measure is subjective, and cannot be determined automatically.However, in many cases it can be estimated with no user interventionusing attributes such as the attributes listed below:

SalienSee—Very low saliency clips are usually boring and not important.Therefore, we can attribute low importanSee to those clips.

Camera Motion: Camera motion is an important source of information onthe intent of the cameraman. A panning of the camera usually indicatesthat the photographer is either scanning the scene (to get a panorama ofthe view), or just changing the focus of attention. Video segments thatrelates to the second option (a wandering camera) can be assigned with alow ImportanSee. A case where the camera is very shaking and notstabilized can also reduce the overall ImportanSee. The camera motioncan be estimated using various common methods (e.g., (J. R. Bergen, P.Anandan, K. J. Hanna, and R. Hingorani 1992)).

Camera Zoom: A Camera zoom-in is usually a good indication for highimportance (i.e., resulting in high ImportanSee). In many cases, thephotographer zooms in on some object of interest to get a close-up viewof the subject (or event).

Face close-up: Images or video clips in which faces appear in the sceneare usually important. Specifically, a close-up on a face (in a frontalview) will usually indicate a clear intention of the photographer tocapture the person (or persons) being photographed, and can serve as astrong cue for high importanSee.

Speech: Speech detection and recognition can help detecting interestingperiods in the video. Moreover, laughter (general, or of a child)increases the ImportanSee measure of the corresponding video segment. Anexcited voice may also be used as a cue for importanSee.

Facial expressions: Facial expressions are a good cue for highImportanSee. For instance, moments when a person smiles or a childfrowns or cries indicates a high ImportanSee.

Given a visual entity d (for example, a video segment), the attributesabove can be used to compute intermediate importance scores s₁, . . . s₁(in our implementation, these scores can be negative. Such scores can beobtained by using direct measurements (e.g, SalienSee measure of aclip), or by some binary predicate using the extracted meta-data (e.g.,s=1 if clip includes a ‘large face closeup’ tag and s=0 otherwise). Thefinal ImportanSee measure is given as a weighted sum of all attributescores. I.e., ImportanSee(d)=max (Σ_(i)α_(i)s_(i), 0), where α_(i) isthe relative weights of each attribute.

Table of content: Table of (visual) content is a hierarchicalsegmentation of visual entities (video or set of videos and images).This feature can be implemented as a clustering of the various scenes ina video. For instance, by sampling short video chunks (e.g., 1 second ofvideo every 5 seconds of video) and clustering these media chunks (usingthe clustering building block) will produce a flat or hierarchical tableof contents of the video. In addition to this segmentation, each segmentis attached with either a textual or visual short description (forexample, a representative frame or a short clip). This representativecan be selected randomly, or according to its ImportanSee measure.

Intelligent preview and thumbnails: This is a very short (e.g., 5-10seconds long) summary of the most representative and important portionsof the video. This feature can be implemented by simply selecting thetime segments of the video with the maximal ImportanSee.

Video links and Associative browsing: This feature facilitates video andimage links, which are based on audio-visual and semantic similarity.This feature can be implemented as a combination of using the Taggingfeature and the similarity building block: The similarity building blockis used to quantify the direct audio-visual similarity between imagesand video. The Tagging feature is used to quantify the semanticassociation between media entities—for instance, two videos of birthdayparties, two videos of dogs etc. To quantify the semantic similarity,various simple distances can be used between the tag lists of each mediaentity, such as the number of mutual tags or a weighted sum of themutual tags, which emphasizes some tags over others. To quantify theoverall similarity a (weighted) sum of the semantic and audio-visualsimilarity can be used to combine the different similarity measures.Links between media entities can be formed for pairs of entities withhigh enough overall similarity.

Content-based fast forward: In Content-based fast-forward, interestingparts are displayed in a normal speed (or with a small speed-up), whileless interesting parts are skipped (or displayed very fast). This can bedone automatically using the ImportanSee measure: The speed-up of eachvideo segment d is determined as a function of its ImportanSee, I.e.speedup(d)=F (ImportanSee(d)). Two simple examples for F are F(x)=1/xand the threshold function:

${F(x)} = \left\{ \begin{matrix}{1,} & {{F(x)} > S} \\{\infty,} & {{F(x)} \leq S}\end{matrix} \right.$

(which is equivalent to selecting the important video segments).

Automatic Video Editing & Synopsis: The main challenge in automaticvideo editing is to automatically select the most important sub-clips inthe video, which best represent the content of the original video. Thisselection is an essential stage for most of the features that relates toautomatic video editing: creating a video synopsis (or Movie “Trailer”),video production, intelligent thumbnails, etc. This task is best servedby the ImportanSee building block (describe above)—to determine theimportance of each sub-clip in the video, and promoting the selection ofthe most important ones to be used in the edited video. Using the factthat we can compute the ImportanSee measure on any video sub-clip wedefine a video editing score for a video editing selection of clips c₁,. . . , c_(n) from a video v: score(c₁, . . . , c_(n))=Σ_(i)ImportanSee(c_(i)).

Thus we can pose the problem of automatic video editing as anoptimization of the editing score above given some constraints (e.g.,such that the total length of all selected sub-clips is not longer thanone-minute). This is a highly non-continuous function and isbest-optimized using stochastic optimization techniques (e.g., SimulatedAnnealing, Genetic Algorithms) where the score function is used toevaluate the quality of a selection and random selection and mutation(e.g., slightly changing clip starting and ending points) enablesdiscovery of the problem-space during the optimization process.

FIG. 12. illustrates a system and its environment according to anembodiment of the invention. The system implements any of the methodsdescribed above to provide a comprehensive solution for browsing,searching and sharing of personal video.

The system has various components which reside on several sites. Therelated sites and the components on them are described next.

User Computer 20—The user computer(Desktop, Laptop, Tablet,Media-Center, Pocket PC, Smartphone etc.) may include two databases 21and 23, content analysis engine 22 and user interface application 24.

The user computer can store a large amount of visual data in generallocations such as ‘My Video’ and ‘My Pictures’ directories in MicrosoftWindows Operation Systems. Most of the data in these locations is rawdata and yet personal.

The content analysis engine 22 may process runs in the background(optionally only during the computer idle time) or upon user request. Itanalyzes the user's visual data (videos and pictures), and extractsmeta-data using a work queue.

The work queue is filled by the content analysis engine 22 as well as bythe user selection (a user can insert any video or image to the top ofthe queue).

While the original video and images of the user may remain intact, thecontent analysis engine 22 may use the private Meta-Data DB 23 to storethe extracted meta-data and reuses this meta-data for its own analysis(e.g., extracted visual tags are stored there for future automatictagging).

In a difference embodiment the content analysis engine 22 is not asoftware installed on the user computer 20, but rather an internetbrowser plug-in or a software component (e.g., ActiveX) which enablesthe user to apply the content analysis engine 22 to run without fullsoftware installation (but a plug-in installation). In anotherembodiment of this system, there is not content analysis engine on the‘User Computer’. Instead, the user can make use of content analysisserver software (12) as a service which resides on the interactionserver 10.

The user interface application 24 lets the user apply a sub-set of themethod capabilities discussed above, thus enabling browsing, searchingand sharing of personal video. The sub-set depends on the type ofclient, license and computer. In one embodiment, this is a standaloneclient installed on the user computer. In another embodiment, this is aweb application which uses an internet browser for running the userinterface, which enables running it from any internet browser, withoutinstalling software.

Interaction Server

The interaction server 10 hosts several servers which enable users toshare personal video and images and broadcast them on various internetlocations by embedding them. The ‘User Profile’ 18 contains variousinformation about the user such as its personal details, a list ofaccounts in various internet services, a list of friend and familymembers and usage statistics. The ‘Public Data+Meta−Data DB’ 17 containsdata that the user selected to share from the ‘User Computer’: relevantmeta-data and also video clips, images, etc. Sharing can be limited tovarious groups—family, friends, everyone etc. The database is alsoresponsible for initiating synchronization with connected ‘UserComputers’ and mobile appliances. The ‘Content Analysis Server’ 12 is apowerful version of the content analysis engine on the user computer 20which enables to process a large amount of visual data being uploaded tothe site. This enables the user to process video even from a computerthat does not have the content analysis engine installed (i.e.,SaaS—Software as a Service).

The ‘Video Platform Server’ 19 performs the actual streaming andinteraction with users and visitors that view video and images stored onthe ‘Interaction server’. It contains the actual ‘Streaming’ module 194which is responsible for the actual delivery of the video on time andwith the right quality. The ‘Interaction’ module 192 is responsible forinterpreting the user requests (e.g., press on a table of contentselement) and communicate it with the ‘Streaming’ server or the ‘LocalPlayer’. The ‘Analytics’ module 193 is responsible for recording userbehavior and response for each video and advertise that was displayed onit (e.g., number of times a video was watched, number of skips, numberof times an ad was watched till its end). The ‘Ad-Logic’ 191 usesinformation from the ‘Analytics’ module to choose the best strategy toselect an ad for a specific video and user and how to display it. Thisinformation is synchronized in real-time with the ‘Local Player’. The‘Ad-Logic’ module can instruct the ‘Local Player’ to display an ad invarious forms, including: pre-roll, post-roll, banners, floating ads,textual ads, bubble ads, ads embedded as visual objects using theextracted video meta-data (e.g., adding a Coca-Cola bottle on a table).

Internet Locations

Users and visitors can view video and images which users decided toshare on various ‘Internet Locations’ 40 that may include socialnetworks, email services, blogs, MySpace, Gmail, Drupel, Facebook andthe like. The actual viewing of video is performed by an embedded playerwhich can be based on various platforms such as Adobe Flash, MicrosoftSilverlight, HTML5 etc. The player can be embedded either directly orusing a local application (e.g., Facebook application) in variousinternet locations including: Social Networks (e.g., Facebook, Myspace),Email messages, Homepages, Sharing-Sites (e.g., Flickr, Picasa),Blogging sites and platforms (e.g., Wordpress, Blogger) and ContentManagement Systems (e.g., Drupal, Wikimedia). Alternatively to embeddinga ‘Local Player’ the user can user an internet link to a dedicated videopage on the ‘Interaction server’.

Mobile Networks

Users can view and synchronize video via mobile appliances (e.g., cellphones) using the cellular networks 50 or internet networks 40. In casesthat the mobile appliance is computationally strong enough (e.g.,Pocket-PC, Smartphone) it can be regarded as a ‘User Computer’. In othercases it can use a ‘Mobile Application’ which enables to view media fromthe ‘Interaction server’ as well as uploading raw media from the mobileappliance. In this manner the ‘Mobile Application’ can use the ‘ContentAnalysis Server’ in the ‘Interaction server’ to produce and share videoeven for appliances with low computational powers. Moreover, the‘Interaction server’ can automatically synchronize uploaded content withother connected ‘User Computers’.

Movie Production

Users can select to send automatically produced media for further,professional production by human experts. The system proceeds by sendingthe relevant raw video, the extracted meta-data and the automaticallyproduced video to a professional producer 70 (via internet or via adelivery service using DVDs etc.). After the professional editing isfinished, the user receives a final product (e.g., produced DVD) viamail or delivery.

Other Electronic Appliances

In other embodiments, the system is implemented on ‘Other ElectronicAppliances’ with do not utilize general CPUs or without enoughcomputational power. In these cases, parts of the software modulesdescribed in user computer are implemented in embedded form (ASIC, FPGA,DSP etc.).

FIG. 13 illustrates method 1300 according to an embodiment of theinvention. Method 1300 is for determining a predictability of a mediaentity portion.

Method 1300 starts by stage 1310 of receiving or generating (a)reference media descriptors, and (b) probability estimations ofdescriptor space representatives given the reference media descriptors;wherein the descriptor space representatives are representative of a setof media entities.

Stage 1310 is followed by stage 1320 of calculating a predictabilityscore of the media entity portion based on at least (a) the probabilityestimations of the descriptor space representatives given the referencemedia descriptors, and (b) relationships between the media entityportion descriptors and the descriptor space representatives.

Stage 1320 may be followed by stage 1330 of responding to thepredictability score.

Stages 1310-1330 can be repeated multiple times on multiple media entityportions.

Stage 1320 may include at least one of the following: (a) calculatingdistances between descriptors of the media entity and the descriptorspace representatives; (b) calculating a weighted sum of probabilityestimations of the descriptor space representatives, wherein weightsapplied for the weighted sum are determined according to distancesbetween descriptors of the media entity portion and descriptor spacerepresentatives; (c) generating the probability estimations given thereference media descriptors; wherein the generating comprisescalculating, for each descriptor space representative, a Parzenestimation of a probability of the descriptor space representative giventhe reference media descriptors.

According to an embodiment of the invention method 1300 may be appliedon different portions of a media entity in order to locate mediaportions of interest. Thus, stage 1320 may include calculating thepredictability of the media entity portion based on reference mediadescriptors that represent media entity portions that precede the mediaentity portion and belong to a same media entity as the media entityportion. Repeating stage 1310 and 1320 on multiple portions of the mediaentity can result in calculating the predictability of multiple mediaentity portions of the media entity and detecting media entity portionsof interest. Stage 1330 may include generating a representation of themedia entity from the media entity portions of interest.

According to an embodiment of the importance of a media entity portioncan be determined based on additional factors. Thus, stage 1320 can beaugmented to include defining a media entity portion as a media entityportion of interest based on the predictability of the media entityportion and on at least one out of a detection of a camera motion, adetection of a camera zoom or a detection of a face close-up.

FIG. 14 illustrates method 1400 according to an embodiment of theinvention. Method 1400 is for evaluating a relationship between a firstmedia entity and a second media entity.

Method 1400 starts by stage 1410 of determining a predictability of thefirst media entity given the second media entity based on (a)probability estimations of descriptor space representatives given secondmedia entity descriptors, wherein the descriptor space representativesare representative of a set of media entities and (b) relationshipsbetween second media entity descriptors and descriptors of the firstmedia entity.

Stage 1410 is followed by stage 1420 of determining a predictability ofthe second media entity given the first media entity based on (a)probability estimations of descriptor space representatives given firstmedia entity descriptors, and (b) the relationships between first mediaentity descriptors and descriptors of the second media entity.

Stage 1420 is followed by stage 1430 of evaluating a similarity valuebetween the first media entity and the second media entity based on thepredictability of the first media entity given the second media entityand the predictability of the second media entity given the first mediaentity.

Stage 1400 may be repeated multiple times, on multiple media entityportions. For example, it may include evaluating the relationshipsbetween multiple first media entities and multiple second media entitiesbased on a predictability of each first media entity given the multiplesecond media entities and a predictability of each second media entitygiven the first media entity.

Method 1400 can be used for clustering—by evaluating the similarityvalue of a media entity to a cluster of media entities. Thus, method1400 can include clustering first and second media entities based on therelationships between the multiple first media entities and the multiplesecond media entities.

FIG. 15 illustrates method 1500 according to an embodiment of theinvention. Method 1500 is for classifying media entities.

Method 1500 starts by stage 1510 of receiving or generating (a) mediaclass descriptors for each media entity class out of a set of mediaentity classes, and (b) probability estimations of descriptor spacerepresentatives given each of the media entity classes; wherein thedescriptor space representatives are representative of a set of mediaentities.

Stage 1510 is followed by stage 1520 of calculating, for each pair ofmedia entity and media class, a predictability score based on (a) theprobability estimations of the descriptor space representatives giventhe media class descriptors of the media class, and (b) relationshipsbetween the media class descriptors and the descriptor spacerepresentatives descriptors of the media entity.

Stage 1520 is followed by stage 1530 of classifying each media entitybased on predictability scores of the media entity and each media class.

FIG. 16 illustrates method 1600 according to an embodiment of theinvention. Method 1600 is for searching for a feature in a media entity.

Method 1600 starts by stage 1610 of receiving or generating first mediaclass descriptors and second media class descriptors; wherein the firstmedia class descriptors represent a first media class of media entitiesthat comprises a first media feature; wherein the second media classdescriptors represent a second media class of media entities that doesnot comprise the first media feature.

Stage 1610 is followed by stage 1620 of calculating a predictabilityscore given a first media class based on (a) probability estimations ofdescriptor space representatives given the first media classdescriptors, and (b) relationships between the first media classdescriptors and descriptors of the media entity.

Stage 1620 is followed by stage 1630 of calculating a second media classpredictability score based on (a) probability estimations of descriptorspace representatives given the second media class descriptors, and (b)relationships between the second media class descriptors and descriptorsof the media entity.

Stage 1630 is followed by stage 1640 of determining whether the mediaentity comprises the feature based on the first media classpredictability score and the second media class predictability score.

Stage 1640 can be followed by stage 1650 of responding to thedetermination. For example, stage 1650 may include detecting mediaentities of interest in response to a detection of the feature.

Stage 1600 can be repeated in order to detect a feature in multiplemedia entities by repeating, for each media entity stages 1610-1650.

The feature can be a face but this is not necessarily so.

FIG. 17 illustrates method 1700 according to an embodiment of theinvention. Method 1700 is for processing media streams.

Method 1700 starts by stage 1710 of applying probabilisticnon-parametric process on the media stream to locate media portions ofinterest. Non-limiting examples of such probabilistic non-parametricprocess are provided in the specification.

A non-parametric probability estimation is an estimation that does notrely on data relating to predefined (or known in advance) probabilitydistribution, but derive probability estimations directly from the(sample) data.

Stage 1710 may include detecting media portions of interest in responseto at least one additional parameter out of: (a) a detection of a changeof focal length of a camera that acquires the media; (b) a detection ofa motion of the camera; (c) a detection of a face; (d) a detection ofpredefined sounds; (e) a detection of laughter; (f) a detection ofpredefined facial expressions; (g) a detection of an excited voice, and(h) detection of predefined behavior

Stage 1710 is followed by stage 1720 of generating metadata indicativeof the media portions of interest.

Stage 1720 may include adding tags to the media portions of interest.

Stage 1720 is followed by stage 1730 of responding to the metadata.

Stage 1730 may include at least one of the following: (a) generating arepresentation of the media stream from the media portions of interest;(b) generating a trick play media stream that comprises the mediaportions of interest; (c) finding media portions of interest that aresimilar to each other; (d) tagging media portions of interest that aresimilar to each other; and (e) editing the media stream based on themedia portions of interest.

The invention may also be implemented in a computer program for runningon a computer system, at least including code portions for performingsteps of a method according to the invention when run on a programmableapparatus, such as a computer system or enabling a programmableapparatus to perform functions of a device or system according to theinvention.

A computer program is a list of instructions such as a particularapplication program and/or an operating system. The computer program mayfor instance include one or more of: a subroutine, a function, aprocedure, an object method, an object implementation, an executableapplication, an applet, a servlet, a source code, an object code, ashared library/dynamic load library and/or other sequence ofinstructions designed for execution on a computer system.

The computer program may be stored internally on a non-transitorycomputer readable medium. All or some of the computer program may beprovided on computer readable media permanently, removably or remotelycoupled to an information processing system. The computer readable mediamay include, for example and without limitation, any number of thefollowing: magnetic storage media including disk and tape storage media;optical storage media such as compact disk media (e.g., CD-ROM, CD-R,etc.) and digital video disk storage media; non-volatile memory storagemedia including semiconductor-based memory units such as FLASH memory,EEPROM, EPROM, ROM; ferromagnetic digital memories; MRAM; volatilestorage media including registers, buffers or caches, main memory, RAM,etc.

A computer process typically includes an executing (running) program orportion of a program, current program values and state information, andthe resources used by the operating system to manage the execution ofthe process. An operating system (OS) is the software that manages thesharing of the resources of a computer and provides programmers with aninterface used to access those resources. An operating system processessystem data and user input, and responds by allocating and managingtasks and internal system resources as a service to users and programsof the system.

The computer system may for instance include at least one processingunit, associated memory and a number of input/output (I/O) devices. Whenexecuting the computer program, the computer system processesinformation according to the computer program and produces resultantoutput information via I/O devices.

In the foregoing specification, the invention has been described withreference to specific examples of embodiments of the invention. It will,however, be evident that various modifications and changes may be madetherein without departing from the broader spirit and scope of theinvention as set forth in the appended claims.

Moreover, the terms “front,” “back,” “top,” “bottom,” “over,” “under”and the like in the description and in the claims, if any, are used fordescriptive purposes and not necessarily for describing permanentrelative positions. It is understood that the terms so used areinterchangeable under appropriate circumstances such that theembodiments of the invention described herein are, for example, capableof operation in other orientations than those illustrated or otherwisedescribed herein.

The connections as discussed herein may be any type of connectionsuitable to transfer signals from or to the respective nodes, units ordevices, for example via intermediate devices. Accordingly, unlessimplied or stated otherwise, the connections may for example be directconnections or indirect connections. The connections may be illustratedor described in reference to being a single connection, a plurality ofconnections, unidirectional connections, or bidirectional connections.However, different embodiments may vary the implementation of theconnections. For example, separate unidirectional connections may beused rather than bidirectional connections and vice versa. Also,plurality of connections may be replaced with a single connection thattransfers multiple signals serially or in a time multiplexed manner.Likewise, single connections carrying multiple signals may be separatedout into various different connections carrying subsets of thesesignals. Therefore, many options exist for transferring signals.

Those skilled in the art will recognize that the boundaries betweenlogic blocks are merely illustrative and that alternative embodimentsmay merge logic blocks or circuit elements or impose an alternatedecomposition of functionality upon various logic blocks or circuitelements. Thus, it is to be understood that the architectures depictedherein are merely exemplary, and that in fact many other architecturescan be implemented which achieve the same functionality.

Any arrangement of components to achieve the same functionality iseffectively “associated” such that the desired functionality isachieved. Hence, any two components herein combined to achieve aparticular functionality can be seen as “associated with” each othersuch that the desired functionality is achieved, irrespective ofarchitectures or intermedial components. Likewise, any two components soassociated can also be viewed as being “operably connected,” or“operably coupled,” to each other to achieve the desired functionality.

Furthermore, those skilled in the art will recognize that boundariesbetween the above described operations merely illustrative. The multipleoperations may be combined into a single operation, a single operationmay be distributed in additional operations and operations may beexecuted at least partially overlapping in time. Moreover, alternativeembodiments may include multiple instances of a particular operation,and the order of operations may be altered in various other embodiments.

Also, for example, in one embodiment, the illustrated examples may beimplemented as circuitry located on a single integrated circuit orwithin a same device. Alternatively, the examples may be implemented asany number of separate integrated circuits or separate devicesinterconnected with each other in a suitable manner.

Also, for example, the examples, or portions thereof, may implemented assoft or code representations of physical circuitry or of logicalrepresentations convertible into physical circuitry, such as in ahardware description language of any appropriate type.

Also, the invention is not limited to physical devices or unitsimplemented in non-programmable hardware but can also be applied inprogrammable devices or units able to perform the desired devicefunctions by operating in accordance with suitable program code, such asmainframes, minicomputers, servers, workstations, personal computers,notepads, personal digital assistants, electronic games, automotive andother embedded systems, cell phones and various other wireless devices,commonly denoted in this application as ‘computer systems’.

However, other modifications, variations and alternatives are alsopossible. The specifications and drawings are, accordingly, to beregarded in an illustrative rather than in a restrictive sense.

In the claims, any reference signs placed between parentheses shall notbe construed as limiting the claim. The word ‘comprising’ does notexclude the presence of other elements or steps then those listed in aclaim. Furthermore, the terms “a” or “an,” as used herein, are definedas one or more than one. Also, the use of introductory phrases such as“at least one” and “one or more” in the claims should not be construedto imply that the introduction of another claim element by theindefinite articles “a” or “an” limits any particular claim containingsuch introduced claim element to inventions containing only one suchelement, even when the same claim includes the introductory phrases “oneor more” or “at least one” and indefinite articles such as “a” or “an.”The same holds true for the use of definite articles. Unless statedotherwise, terms such as “first” and “second” are used to arbitrarilydistinguish between the elements such terms describe. Thus, these termsare not necessarily intended to indicate temporal or otherprioritization of such elements. The mere fact that certain measures arerecited in mutually different claims does not indicate that acombination of these measures cannot be used to advantage.

While certain features of the invention have been illustrated anddescribed herein, many modifications, substitutions, changes, andequivalents will now occur to those of ordinary skill in the art. It is,therefore, to be understood that the appended claims are intended tocover all such modifications and changes as fall within the true spiritof the invention.

1. A method comprising: processing a media stream comprising at leastone of: a plurality of images and a video stream, to extract metadatarelating to at least one characteristic of the media stream; displayingto a user the extracted metadata; receiving from the user an instructionto generate a modified media stream wherein said instruction isresponsive to the at least one characteristic represented by theextracted metadata; and generating a modified media stream, in responseto said instruction.
 2. The method according to claim 1, wherein theextracted metadata comprise at least one image portion showing an objectdetected in the media stream, and wherein the instruction is carried outby the user by choosing at least one of the shown image portions.
 3. Themethod according to claim 1, wherein the modified edited media isshorter than the media stream.
 4. The method according to claim 1,wherein the modified media stream is generated by applying anon-parametric method.
 5. The method according to claim 1, wherein themodified media stream is generated responsive to a speech attribute thatis indicative of an importance level of media frames that are associatedwith speech.
 6. The method according to claim 1, wherein acharacteristic of the media stream comprises an importance of a specificobject, wherein a portion of the specific object appears in the mediastream.
 7. The method according to claim 1, wherein a characteristic ofthe media stream comprises an importance of a specific person, wherein aface of the specific person appears in the media stream.
 8. The methodaccording to claim 1, wherein a characteristic of the media stream is animportance of a specific scene, wherein the specific scene appears inthe media stream.
 9. The method according to claim 1, wherein themodified media stream is generated responsive to a face attribute thatis indicative of an importance level of media portions that comprisefaces.
 10. The method according to claim 1, wherein the modified editedmedia stream is generated responsive to an action attribute that isindicative of an importance level of media frames that are associatedwith action.
 11. The method according to claim 1, wherein the modifiedmedia stream is being displayed while acquiring an additional portion ofa media stream.
 12. The method according to claim 1, further comprisinggenerating a mosaic of visual entities, wherein a first visual entity ofthe mosaic represents the modified media stream; and wherein at least asecond visual entity of the mosaic is not representative of the editednull of media stream, wherein a relationship between a size of the firstand second visual entities is responsive to a relationship betweenimportance levels associated with the first and second visual entities.13. The method according to claim 12, wherein the visual entitiescomprise still pictures and video streams.
 14. The method according toclaim 12, wherein the generating of the modified media stream intriggered in response to a detection of camera activity.
 15. The methodaccording to claim 1, wherein the generating of the modified mediastream is triggered wherever the user is located at a predeterminedlocation.
 16. The method according to claim 1, wherein the generating ofthe modified media stream is triggered in response to an activity ofanother user that is associated with the user.
 17. The method accordingto claim 1, wherein the media stream further comprises audio frames thatare synchronized with the video stream, wherein the modified mediastream comprises selected audio frames and a modified video stream,wherein the modified video stream comprises video frames synchronizedwith selected audio frames and additional video content, and wherein themodified video stream and the modified audio stream are synchronized.18. A method comprising: processing a media stream comprising at leastone of: a plurality of images and a video stream, to compute metadatarelating to characteristics of the media stream; displaying to a user anedited media stream generated automatically based on the computedmetadata; receiving from the user an instruction to modify the editedmedia stream, wherein the instruction relates to at least onecharacteristic that is represented by the metadata; and generating amodified edited media stream, responsive to the instruction.
 19. Themethod according to claim 18, wherein the instruction is carried out bythe user by selecting at least one object displayed over the editedmedia stream.
 20. The method according to claim 19, wherein thedisplayed objects are persons that were automatically been identified asimportant.
 21. The method according to claim 18, wherein at least oneof: the edited media stream and the modified edited media is shorterthan the media stream.
 22. The method according to claim 18, wherein atleast one of: the edited media stream and the modified edited mediastream is generated by applying a non-parametric method.
 23. The methodaccording to claim 18, wherein a characteristic of the media streamcomprises an importance of a specific object, wherein a portion of thespecific object appears in the media stream.
 24. The method according toclaim 18, wherein a characteristic of the media stream comprises animportance of a specific person, wherein a face of the specific personappears in the media stream.
 25. The method according to claim 23,wherein the instruction to modify the edited media stream consist atleast of increasing the importance of said specific object, and whereinthe generating a modified edited media stream includes showing saidspecific object more often in the modified edited media stream than inthe edited media stream.
 26. A system comprising: a computer processorand a memory configured to process a media stream comprising at leastone of: a plurality of images and a video stream, to extract metadatarelating to at least one characteristic of the media stream; a displayconfigured to display to a user the extracted metadata; and a userinterface configured to receive from the user an instruction to generatea modified media stream wherein said instruction is responsive to the atleast one characteristic represented by the extracted metadata, whereinthe computer processor is further configured to generate a modifiedmedia stream, in response to said instruction.
 27. The system accordingto claim 26, wherein the system further includes a capturing device, andwherein the computer processor and the display are electronicallycoupled to the capturing device.
 28. A system comprising: a computerprocessor configured to process a media stream comprising at least oneof: a plurality of images and a video stream, to compute metadatarelating to characteristics of the media stream; a display configured todisplay to a user an edited media stream generated automatically basedon the computed metadata; and a user interface configured to receivefrom the user an instruction to modify the edited media stream, whereinthe instruction relates to at least one characteristic that isrepresented by the metadata, wherein the computer processor isconfigured to generate a modified edited media stream, responsive to theinstruction.
 29. The system according to claim 28, wherein the systemfurther includes a capturing device, and wherein the computer processorand the display are electronically coupled to the capturing device. 30.The system according to claim 28, wherein the computer processor islocated on a remote server electronically separated from the display.